Skip to content

Commit b576c4c

Browse files
Merge pull request #1 from zendesk/master
Merging upstream master
2 parents 16521a5 + eb9d807 commit b576c4c

File tree

22 files changed

+255
-108
lines changed

22 files changed

+255
-108
lines changed

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Maxwell changelog
22

3+
### [v1.40.0](https://github.com/zendesk/maxwell/releases/tag/v1.40.0)
4+
5+
- add kafka 3.4.0
6+
- kafka 2.7.0 is now the default kafka library
7+
- add custom health-check factory jar thing
8+
9+
10+
11+
_Released 2023-04-02_
12+
13+
### [v1.39.6](https://github.com/zendesk/maxwell/releases/tag/v1.39.6)
14+
15+
- Bugfix issue where SQL query would go missing (#1973)
16+
- Various parser bugfixes (#1970, #1982, #1987)
17+
- Fix issue with renaming a primary key column (#1977)
18+
19+
20+
21+
_Released 2023-03-11_
22+
323
### [v1.39.5](https://github.com/zendesk/maxwell/releases/tag/v1.39.5)
424

525
- a few parser fixes

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
FROM maven:3.8-jdk-11 as builder
2-
ENV MAXWELL_VERSION=1.39.5 KAFKA_VERSION=1.0.0
2+
ENV MAXWELL_VERSION=1.40.0 KAFKA_VERSION=1.0.0
33

44
RUN apt-get update \
55
&& apt-get -y upgrade \

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KAFKA_VERSION ?= 1.0.0
1+
KAFKA_VERSION ?= 2.7.0
22
KAFKA_PROFILE = kafka-${KAFKA_VERSION}
33
export JAVA_TOOL_OPTIONS = -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
44

@@ -16,7 +16,7 @@ clean:
1616
depclean: clean
1717
rm -f $(CLASSPATH)
1818

19-
package: depclean kafka-0.8.2.2 kafka-0.9.0.1 kafka-0.10.0.1 kafka-0.10.2.1 kafka-0.11.0.1 kafka-1.0.0 kafka-2.7.0
19+
package: depclean kafka-0.8.2.2 kafka-0.9.0.1 kafka-0.10.0.1 kafka-0.10.2.1 kafka-0.11.0.1 kafka-1.0.0 kafka-2.7.0 kafka-3.4.0
2020
@# TODO: this is inefficient, we really just want to copy the jars...
2121
mvn package -DskipTests=true
2222

README.md

Lines changed: 22 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,33 @@
1-
<div id="maxwell-header">
2-
</div>
1+
This is __Maxwell's daemon__, a [change data capture](https://www.confluent.io/blog/how-change-data-capture-works-patterns-solutions-implementation/) application
2+
that reads MySQL binlogs and writes data changes as JSON to Kafka, Kinesis, and other streaming platforms.
33

4-
This is Maxwell's daemon, an application that reads MySQL binlogs and writes
5-
row updates as JSON to Kafka, Kinesis, or other streaming platforms. Maxwell has
6-
low operational overhead, requiring nothing but mysql and a place to write to.
7-
Its common use cases include ETL, cache building/expiring, metrics collection,
8-
search indexing and inter-service communication. Maxwell gives you some of the
9-
benefits of event sourcing without having to re-architect your entire platform.
104

11-
<b>Download:</b><br>
12-
[https://github.com/zendesk/maxwell/releases/download/v1.39.5/maxwell-1.39.5.tar.gz](https://github.com/zendesk/maxwell/releases/download/v1.39.5/maxwell-1.39.5.tar.gz)
13-
<br/>
14-
<b>Source:</b><br>
15-
[https://github.com/zendesk/maxwell](https://github.com/zendesk/maxwell)
16-
<br clear="all">
175

6+
[↓ Download](https://github.com/zendesk/maxwell/releases/download/v1.40.0/maxwell-1.40.0.tar.gz) \|
7+
[⚝ Source / Community](https://github.com/zendesk/maxwell) \|
8+
[☝ Getting Started](/quickstart) \|
9+
[☷ Reference](/config)
10+
11+
__What's it for?__
12+
13+
- ETL of all sorts
14+
- maintaining an audit log of all changes to your database
15+
- cache building/expiring
16+
- search indexing
17+
- inter-service communication
18+
19+
20+
__It goes like this:__
1821

1922
```
20-
mysql> insert into `test`.`maxwell` set id = 1, daemon = 'Stanislaw Lem';
21-
maxwell: {
23+
mysql> update `test`.`maxwell` set mycol = 55, daemon = 'Stanislaw Lem';
24+
maxwell -> kafka:
25+
{
2226
"database": "test",
2327
"table": "maxwell",
2428
"type": "insert",
2529
"ts": 1449786310,
26-
"xid": 940752,
27-
"commit": true,
28-
"data": { "id":1, "daemon": "Stanislaw Lem" }
29-
}
30-
```
31-
32-
```
33-
mysql> update test.maxwell set daemon = 'firebus! firebus!' where id = 1;
34-
maxwell: {
35-
"database": "test",
36-
"table": "maxwell",
37-
"type": "update",
38-
"ts": 1449786341,
39-
"xid": 940786,
40-
"commit": true,
41-
"data": {"id":1, "daemon": "Firebus! Firebus!"},
42-
"old": {"daemon": "Stanislaw Lem"}
30+
"data": { "id":1, "daemon": "Stanislaw Lem", "mycol": 55 },
31+
"old": { "mycol":, 23, "daemon": "what once was" }
4332
}
4433
```

bin/maxwell

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ fi
1818

1919
CLASSPATH="$CLASSPATH:$lib_dir/*"
2020

21-
KAFKA_VERSION="1.0.0"
21+
KAFKA_VERSION="2.7.0"
2222

2323
function use_kafka() {
2424
wanted="$1"

docs/docs/config.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ metrics_datadog_apikey | STRING | the datadog api key to use when metrics_data
236236
metrics_datadog_site | STRING | the site to publish metrics to when metrics_datadog_type = `http` | us
237237
metrics_datadog_host | STRING | the host to publish metrics to when metrics_datadog_type = `udp` | localhost
238238
metrics_datadog_port | INT | the port to publish metrics to when metrics_datadog_type = `udp` | 8125
239+
custom_health.factory | CLASS_NAME | fully qualified maxwell health check factory class, see [example](https://github.com/zendesk/maxwell/blob/master/src/example/com/zendesk/maxwell/example/maxwellhealthcheckfactory/CustomMaxwellHealthCheckFactory.java) |
239240

240241
_See also:_ [Monitoring](/monitoring)
241242

docs/docs/monitoring.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,18 @@ When the HTTP server is enabled the following endpoints are exposed:
3131

3232
| endpoint | description |
3333
|:---------------|:-------------------------------------------------------------------------------|
34-
| `/metrics` | return all metrics as JSON |
35-
| `/prometheus` | return all metrics as Prometheus format |
34+
| `/metrics` | GET all metrics as JSON |
35+
| `/prometheus` | GET all metrics as Prometheus format |
3636
| `/healthcheck` | run Maxwell's healthchecks. Considered unhealthy if &gt;0 messages have failed in the last 15 minutes. |
3737
| `/ping` | a simple ping test, responds with `pong` |
38+
| `/diagnostics` | for kafka, send a fake message that measures the client to server latency |
3839

40+
## Custom Health Check
41+
Similar to the custom producer, developers can provide their own implementation of a health check.
42+
43+
In order to register your custom health check, you must implement the `MaxwellHealthCheckFactory` interface, which is responsible for creating your custom `MaxwellHealthCheck`. Next, set the `custom_health.factory` configuration property to your `MaxwellHealthCheckFactory`'s fully qualified class name. Then add the custom `MaxwellHealthCheckFactory` JAR and all its dependencies to the $MAXWELL_HOME/lib directory.
44+
45+
Custom health check factory and health check examples can be found here: [https://github.com/zendesk/maxwell/tree/master/src/example/com/zendesk/maxwell/example/maxwellhealthcheckfactory](https://github.com/zendesk/maxwell/tree/master/src/example/com/zendesk/maxwell/example/maxwellhealthcheckfactory)
3946

4047
# JMX Configuration
4148
***

docs/docs/quickstart.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Download
22
***
3-
- Download binary distro: [https://github.com/zendesk/maxwell/releases/download/v1.39.5/maxwell-1.39.5.tar.gz](https://github.com/zendesk/maxwell/releases/download/v1.39.5/maxwell-1.39.5.tar.gz)
3+
- Download binary distro: [https://github.com/zendesk/maxwell/releases/download/v1.40.0/maxwell-1.40.0.tar.gz](https://github.com/zendesk/maxwell/releases/download/v1.40.0/maxwell-1.40.0.tar.gz)
44
- Sources and bug tracking is available on github: [https://github.com/zendesk/maxwell](https://github.com/zendesk/maxwell)
55

66
**curl**:
77
```
8-
curl -sLo - https://github.com/zendesk/maxwell/releases/download/v1.39.5/maxwell-1.39.5.tar.gz \
8+
curl -sLo - https://github.com/zendesk/maxwell/releases/download/v1.40.0/maxwell-1.40.0.tar.gz \
99
| tar zxvf -
10-
cd maxwell-1.39.5
10+
cd maxwell-1.40.0
1111
```
1212

1313
**docker**:

docs/maxwell_theme/main.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{% extends "base.html" %}
22
{%- block content %}
3-
<div class="col-md-3">{% include "toc.html" %}</div>
4-
<div class="col-md-9" role="main">
3+
<div class="col-md-4">{% include "toc.html" %}</div>
4+
<div class="col-md-8" role="main">
55
<div id="{{ page.title }}">
66
{% include "content.html" %}
77
</div>

pom.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.zendesk</groupId>
66
<artifactId>maxwell</artifactId>
7-
<version>1.39.5</version>
7+
<version>1.40.0</version>
88
<packaging>jar</packaging>
99

1010
<name>maxwell</name>
@@ -123,6 +123,19 @@
123123
</dependency>
124124
</dependencies>
125125
</profile>
126+
<profile>
127+
<id>kafka-3.4.0</id>
128+
<activation>
129+
<activeByDefault>true</activeByDefault>
130+
</activation>
131+
<dependencies>
132+
<dependency>
133+
<groupId>org.apache.kafka</groupId>
134+
<artifactId>kafka-clients</artifactId>
135+
<version>3.4.0</version>
136+
</dependency>
137+
</dependencies>
138+
</profile>
126139
</profiles>
127140

128141
<dependencies>

0 commit comments

Comments
 (0)