Skip to content

Commit 91c995a

Browse files
committed
updates with dashboards and metrics data-stream
1 parent 35529cf commit 91c995a

File tree

43 files changed

+6341
-715
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+6341
-715
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
dependencies:
22
ecs:
3-
reference: git@1.11
3+
reference: git@1.12

packages/cassandra/_dev/deploy/docker/Dockerfile

Lines changed: 7 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -1,165 +1,7 @@
1-
FROM adoptopenjdk:8-jre-hotspot-focal
1+
ARG SERVICE_VERSION=${SERVICE_VERSION:-3.11.11}
2+
FROM cassandra:${SERVICE_VERSION}
23

3-
ENV JOLOKIA_VERSION=1.3.3 JOLOKIA_HOST=0.0.0.0 JOLOKIA_PORT=8778
4-
5-
# explicitly set user/group IDs
6-
RUN set -eux; \
7-
groupadd -r cassandra --gid=999; \
8-
useradd -r -g cassandra --uid=999 cassandra
9-
10-
RUN set -eux; \
11-
apt-get update; \
12-
apt-get install -y --no-install-recommends \
13-
# solves warning: "jemalloc shared library could not be preloaded to speed up memory allocations"
14-
libjemalloc2 \
15-
# "free" is used by cassandra-env.sh
16-
procps \
17-
# "cqlsh" needs a python interpreter
18-
python \
19-
# "ip" is not required by Cassandra itself, but is commonly used in scripting Cassandra's configuration (since it is so fixated on explicit IP addresses)
20-
iproute2 \
21-
# Cassandra will automatically use numactl if available
22-
# https://github.com/apache/cassandra/blob/18bcda2d4c2eba7370a0b21f33eed37cb730bbb3/bin/cassandra#L90-L100
23-
# https://github.com/apache/cassandra/commit/604c0e87dc67fa65f6904ef9a98a029c9f2f865a
24-
numactl \
25-
; \
26-
rm -rf /var/lib/apt/lists/*; \
27-
# https://issues.apache.org/jira/browse/CASSANDRA-15767 ("bin/cassandra" only looks for "libjemalloc.so" or "libjemalloc.so.1" which doesn't match our "libjemalloc.so.2")
28-
libjemalloc="$(readlink -e /usr/lib/*/libjemalloc.so.2)"; \
29-
ln -sT "$libjemalloc" /usr/local/lib/libjemalloc.so; \
30-
ldconfig
31-
32-
# grab gosu for easy step-down from root
33-
# https://github.com/tianon/gosu/releases
34-
ENV GOSU_VERSION 1.12
35-
RUN set -eux; \
36-
savedAptMark="$(apt-mark showmanual)"; \
37-
apt-get update; \
38-
apt-get install -y --no-install-recommends ca-certificates dirmngr gnupg wget; \
39-
rm -rf /var/lib/apt/lists/*; \
40-
dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
41-
wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
42-
wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
43-
export GNUPGHOME="$(mktemp -d)"; \
44-
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
45-
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
46-
gpgconf --kill all; \
47-
rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
48-
apt-mark auto '.*' > /dev/null; \
49-
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; \
50-
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
51-
chmod +x /usr/local/bin/gosu; \
52-
gosu --version; \
53-
gosu nobody true
54-
55-
ENV CASSANDRA_HOME /opt/cassandra
56-
ENV CASSANDRA_CONF /etc/cassandra
57-
ENV PATH $CASSANDRA_HOME/bin:$PATH
58-
59-
# https://cwiki.apache.org/confluence/display/CASSANDRA2/DebianPackaging#DebianPackaging-AddingRepositoryKeys
60-
# $ docker run --rm buildpack-deps:buster-curl bash -c 'wget -qO- https://downloads.apache.org/cassandra/KEYS | gpg --batch --import &> /dev/null && gpg --batch --list-keys --with-fingerprint --with-colons' | awk -F: '$1 == "pub" && $2 == "-" { pub = 1 } pub && $1 == "fpr" { fpr = $10 } $1 == "sub" { pub = 0 } pub && fpr && $1 == "uid" && $2 == "-" { print "#", $10; print "\t" fpr " \\"; pub = 0 }'
61-
ENV GPG_KEYS \
62-
# Eric Evans <eevans@sym-link.com>
63-
CEC86BB4A0BA9D0F90397CAEF8358FA2F2833C93 \
64-
# Eric Evans <eevans@sym-link.com>
65-
C4965EE9E3015D192CCCF2B6F758CE318D77295D \
66-
# Sylvain Lebresne (pcmanus) <sylvain@datastax.com>
67-
5AED1BF378E9A19DADE1BCB34BD736A82B5C1B00 \
68-
# T Jake Luciani <jake@apache.org>
69-
514A2AD631A57A16DD0047EC749D6EEC0353B12C \
70-
# Michael Shuler <michael@pbandjelly.org>
71-
A26E528B271F19B9E5D8E19EA278B781FE4B2BDA \
72-
# Michael Semb Wever <mick@thelastpickle.com>
73-
A4C465FEA0C552561A392A61E91335D77E3E87CB \
74-
# Alex Petrov <oleksandr.petrov@gmail.com>
75-
9E66CEC6106D578D0B1EB9BFF1000962B7F6840C \
76-
# Jordan West <jwest@apache.org>
77-
C4009872C59B49561310D966D0062876AF30F054 \
78-
# Brandon Williams <brandonwilliams@apache.org>
79-
B7842CDAF36E6A3214FAE35D5E85B9AE0B84C041 \
80-
# Ekaterina Buryanova Dimitrova (CODE SIGNING KEY) <e.dimitrova@gmail.com>
81-
3E9C876907A560ACA00964F363E9BAD215BBF5F0
82-
83-
ENV CASSANDRA_VERSION 3.11.11
84-
ENV CASSANDRA_SHA512 5a7dc4237c9f43526b63cae62f04d73ec60f28e86ee1dd4bd4aaa55d2063d74fe842e015f7f68512db7deadbe52cab37417341183a716c191035463992e42d37
85-
86-
RUN set -eux; \
87-
savedAptMark="$(apt-mark showmanual)"; \
88-
apt-get update; \
89-
apt-get install -y --no-install-recommends ca-certificates dirmngr gnupg wget; \
90-
rm -rf /var/lib/apt/lists/*; \
91-
\
92-
ddist() { \
93-
local f="$1"; shift; \
94-
local distFile="$1"; shift; \
95-
local success=; \
96-
local distUrl=; \
97-
for distUrl in \
98-
# https://issues.apache.org/jira/browse/INFRA-8753?focusedCommentId=14735394#comment-14735394
99-
'https://www.apache.org/dyn/closer.cgi?action=download&filename=' \
100-
# if the version is outdated (or we're grabbing the .asc file), we might have to pull from the dist/archive :/
101-
https://www-us.apache.org/dist/ \
102-
https://www.apache.org/dist/ \
103-
https://archive.apache.org/dist/ \
104-
; do \
105-
if wget --progress=dot:giga -O "$f" "$distUrl$distFile" && [ -s "$f" ]; then \
106-
success=1; \
107-
break; \
108-
fi; \
109-
done; \
110-
[ -n "$success" ]; \
111-
}; \
112-
\
113-
ddist 'cassandra-bin.tgz' "cassandra/$CASSANDRA_VERSION/apache-cassandra-$CASSANDRA_VERSION-bin.tar.gz"; \
114-
echo "$CASSANDRA_SHA512 *cassandra-bin.tgz" | sha512sum --check --strict -; \
115-
\
116-
ddist 'cassandra-bin.tgz.asc' "cassandra/$CASSANDRA_VERSION/apache-cassandra-$CASSANDRA_VERSION-bin.tar.gz.asc"; \
117-
export GNUPGHOME="$(mktemp -d)"; \
118-
for key in $GPG_KEYS; do \
119-
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
120-
done; \
121-
gpg --batch --verify cassandra-bin.tgz.asc cassandra-bin.tgz; \
122-
rm -rf "$GNUPGHOME"; \
123-
\
124-
apt-mark auto '.*' > /dev/null; \
125-
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; \
126-
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
127-
\
128-
mkdir -p "$CASSANDRA_HOME"; \
129-
tar --extract --file cassandra-bin.tgz --directory "$CASSANDRA_HOME" --strip-components 1; \
130-
rm cassandra-bin.tgz*; \
131-
\
132-
[ ! -e "$CASSANDRA_CONF" ]; \
133-
mv "$CASSANDRA_HOME/conf" "$CASSANDRA_CONF"; \
134-
ln -sT "$CASSANDRA_CONF" "$CASSANDRA_HOME/conf"; \
135-
\
136-
dpkgArch="$(dpkg --print-architecture)"; \
137-
case "$dpkgArch" in \
138-
ppc64el) \
139-
# https://issues.apache.org/jira/browse/CASSANDRA-13345
140-
# "The stack size specified is too small, Specify at least 328k"
141-
if grep -q -- '^-Xss' "$CASSANDRA_CONF/jvm.options"; then \
142-
# 3.11+ (jvm.options)
143-
grep -- '^-Xss256k$' "$CASSANDRA_CONF/jvm.options"; \
144-
sed -ri 's/^-Xss256k$/-Xss512k/' "$CASSANDRA_CONF/jvm.options"; \
145-
grep -- '^-Xss512k$' "$CASSANDRA_CONF/jvm.options"; \
146-
elif grep -q -- '-Xss256k' "$CASSANDRA_CONF/cassandra-env.sh"; then \
147-
# 3.0 (cassandra-env.sh)
148-
sed -ri 's/-Xss256k/-Xss512k/g' "$CASSANDRA_CONF/cassandra-env.sh"; \
149-
grep -- '-Xss512k' "$CASSANDRA_CONF/cassandra-env.sh"; \
150-
fi; \
151-
;; \
152-
esac; \
153-
\
154-
mkdir -p "$CASSANDRA_CONF" /var/lib/cassandra /var/log/cassandra; \
155-
chown -R cassandra:cassandra "$CASSANDRA_CONF" /var/lib/cassandra /var/log/cassandra; \
156-
chmod 777 "$CASSANDRA_CONF" /var/lib/cassandra /var/log/cassandra; \
157-
chmod -R a+rwX "$CASSANDRA_CONF"; \
158-
ln -sT /var/lib/cassandra "$CASSANDRA_HOME/data"; \
159-
ln -sT /var/log/cassandra "$CASSANDRA_HOME/logs"; \
160-
\
161-
# smoke test
162-
cassandra -v
4+
ENV JOLOKIA_VERSION=1.6.0 JOLOKIA_HOST=0.0.0.0 JOLOKIA_PORT=8778
1635

1646
RUN cp -f $JAVA_HOME/lib/management/jmxremote.access $JAVA_HOME/lib/management/jmxremote.access.bak \
1657
&& chown root:cassandra $JAVA_HOME/lib/management/jmxremote.access* \
@@ -171,16 +13,13 @@ RUN set -eux; \
17113
savedAptMark="$(apt-mark showmanual)"; \
17214
apt-get update; \
17315
apt-get install -y --no-install-recommends wget \
174-
&& wget http://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-jvm/${JOLOKIA_VERSION}/jolokia-jvm-${JOLOKIA_VERSION}-agent.jar \
175-
-O $CASSANDRA_LIB/jolokia-jvm-${JOLOKIA_VERSION}-agent.jar
176-
177-
VOLUME /var/lib/cassandra
16+
&& wget http://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-jvm/${JOLOKIA_VERSION}/jolokia-jvm-${JOLOKIA_VERSION}-agent.jar -O jolokia-jvm-${JOLOKIA_VERSION}-agent.jar
17817

17918
ENV JMX_REMOTE=yes JOLOKIA_ENABLED=yes
18019

181-
COPY docker-entrypoint-initdb.d /usr/local/bin/
182-
RUN ln -s usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh # backwards compat
183-
ENTRYPOINT ["docker-entrypoint.sh"]
20+
COPY docker-entrypoint-initdb.d /docker-entrypoint-initdb.d
21+
22+
ENTRYPOINT ["/docker-entrypoint-initdb.d/docker-entrypoint.sh"]
18423

18524
# 7000: intra-node communication
18625
# 7001: TLS intra-node communication

packages/cassandra/_dev/deploy/docker/docker-compose.yml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,21 @@ version: '2.3'
22
services:
33
cassandra:
44
build: .
5+
volumes:
6+
- ${SERVICE_LOGS_DIR}:/var/log/cassandra/
57
ports:
68
- 8778
7-
# cassandra-logfile:
8-
# image: alpine
9-
# volumes:
10-
# - ./sample_logs:/sample_logs:ro
11-
# - ${SERVICE_LOGS_DIR}:/opt/cassandra/data/
12-
# command: /bin/sh -c "cp /sample_logs/* /opt/cassandra/data/"
9+
cassandra-node-1:
10+
image: cassandra:3.11.11
11+
command: /bin/bash -c "echo 'Waiting for seed node' && sleep 30 && /docker-entrypoint.sh cassandra -f"
12+
environment:
13+
- "CASSANDRA_SEEDS=elastic-package-service_cassandra_1"
14+
depends_on:
15+
- "cassandra"
16+
cassandra-node-2:
17+
image: cassandra:3.11.11
18+
command: /bin/bash -c "echo 'Waiting for seed node' && sleep 80 && /docker-entrypoint.sh cassandra -f"
19+
environment:
20+
- "CASSANDRA_SEEDS=elastic-package-service_cassandra_1"
21+
depends_on:
22+
- "cassandra"

packages/cassandra/_dev/deploy/docker/docker-entrypoint-initdb.d/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ if [ "$1" = 'cassandra' ]; then
7171

7272
# Update JMX agent configuration
7373
if [ "$JOLOKIA_ENABLED" = 'yes' ]; then
74-
sed -ri 's:(JVM_OPTS=\"\$JVM_OPTS).*(\$JVM_EXTRA_OPTS)\":\1 -javaagent\:'`echo ${CASSANDRA_LIB}/jolokia-jvm-${JOLOKIA_VERSION}-agent.jar=host=${JOLOKIA_HOST},port=${JOLOKIA_PORT},user=${JMX_USERNAME},password=${JMX_PASSWORD}`' \2":' "$CASSANDRA_CONF/cassandra-env.sh"
74+
sed -ri 's:(JVM_OPTS=\"\$JVM_OPTS).*(\$JVM_EXTRA_OPTS)\":\1 -javaagent\:'`echo jolokia-jvm-${JOLOKIA_VERSION}-agent.jar=host=${JOLOKIA_HOST},port=${JOLOKIA_PORT},user=${JMX_USERNAME},password=${JMX_PASSWORD}`' \2":' "$CASSANDRA_CONF/cassandra-env.sh"
7575
fi
7676
else
7777
sed -ri 's:(LOCAL_JMX=).*:\1yes:' "$CASSANDRA_CONF/cassandra-env.sh"

packages/cassandra/_dev/deploy/docker/sample_logs/system.log

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
variants:
2+
v3.11.11:
3+
SERVICE_VERSION: 3.11.11
4+
default: v3.11.11

packages/cassandra/data_stream/log/_dev/test/system/test-logfile-config.yml renamed to packages/cassandra/data_stream/log/_dev/test/system/test-default-config.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
service: cassandra-logfile
2-
input: logfile
1+
vars: ~
32
data_stream:
43
vars:
54
paths:

0 commit comments

Comments
 (0)