This commit is contained in:
woozu-shin
2023-10-12 14:44:09 +09:00
commit 1e39a6fb26
62 changed files with 2945 additions and 0 deletions

8
pinpoint-flink/.env Normal file
View File

@@ -0,0 +1,8 @@
PINPOINT_VERSION=2.5.3
### Pinpoint-flink
PINPOINT_ZOOKEEPER_ADDRESS=zookeeper
PINPOINT_FLINK_NAME=pinpoint-flink
FLINK_WEB_PORT=8081

15
pinpoint-flink/Dockerfile Normal file
View File

@@ -0,0 +1,15 @@
FROM flink:1.14-java11
ARG PINPOINT_VERSION=${PINPOINT_VERSION:-2.5.3}
ARG INSTALL_URL=https://github.com/pinpoint-apm/pinpoint/releases/download/v${PINPOINT_VERSION}/pinpoint-flink-job-${PINPOINT_VERSION}.jar
RUN apt-get update \
&& apt-get install --no-install-recommends -y zip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /build \
&& curl -SL ${INSTALL_URL} -o /build/pinpoint-flink-job.jar
COPY build/ /build/
COPY docker-bin/ /docker-bin/
ENTRYPOINT ["/docker-bin/docker-entrypoint.sh"]

45
pinpoint-flink/Readme.md Normal file
View File

@@ -0,0 +1,45 @@
## Pinpoint Flink
This Docker image contains the Pinpoint Flink component of the Pinpoint application monitoring system.
## Supported Tags
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
Please see the [Pinpoint-Docker GitHub repository](https://github.com/pinpoint-apm/pinpoint-docker) for further information on how to run, configure and build this image.
## Any Issues or Suggestions?
Feel free to share any problems and suggestions via [Pinpoint GitHub Issue page](https://github.com/pinpoint-apm/pinpoint-docker/issues).
Contributions on the pinpoint-docker image is also always welcome.
## License
Pinpoint is licensed under the Apache License, Version 2.0.
See [LICENSE](https://github.com/pinpoint-apm/pinpoint/blob/master/LICENSE) for full license text.
```
Copyright 2018 NAVER Corp.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```

View File

@@ -0,0 +1,30 @@
hbase.client.host=#PINPOINT_ZOOKEEPER_ADDRESS#
hbase.client.port=2181
# hbase default:/hbase
hbase.zookeeper.znode.parent=/hbase
# hbase namespace to use default:default
hbase.namespace=default
# hbase timeout option==================================================================================
# hbase default:true
hbase.ipc.client.tcpnodelay=true
# hbase default:60000
hbase.rpc.timeout=10000
# hbase default:Integer.MAX_VALUE
hbase.client.operation.timeout=10000
# hbase default: 20m
hbase.client.meta.operation.timeout=10000
# hbase socket read timeout. default: 200000
hbase.ipc.client.socket.timeout.read=20000
# socket write timeout. hbase default: 600000
hbase.ipc.client.socket.timeout.write=30000
#==================================================================================
# hbase client thread pool option
hbase.client.thread.max=128
hbase.client.threadPool.queueSize=5120
# prestartAllCoreThreads
hbase.client.threadPool.prestart=false

View File

@@ -0,0 +1,59 @@
# configure l4 ip address to ignore health check logs
collector.l4.ip=
# base data receiver config ---------------------------------------------------------------------
collector.receiver.base.ip=0.0.0.0
collector.receiver.base.port=19994
# number of tcp worker threads
collector.receiver.base.worker.threadSize=8
# capacity of tcp worker queue
collector.receiver.base.worker.queueSize=1024
# monitoring for tcp worker
collector.receiver.base.worker.monitor=true
# change OS level read/write socket buffer size (for linux)
#sudo sysctl -w net.core.rmem_max=
#sudo sysctl -w net.core.wmem_max=
# check current values using:
#$ /sbin/sysctl -a | grep -e rmem -e wmem
# number of agent event worker threads
collector.agentEventWorker.threadSize=4
# capacity of agent event worker queue
collector.agentEventWorker.queueSize=1024
# -------------------------------------------------------------------------------------------------
# The cluster related options are used to establish connections between the agent, collector, and web in order to send/receive data between them in real time.
# You may enable additional features using this option (Ex : RealTime Active Thread Chart).
# -------------------------------------------------------------------------------------------------
# Usage : Set the following options for collector/web components that reside in the same cluster in order to enable this feature.
# 1. cluster.enable (pinpoint-web-root.properties, pinpoint-flink.properties) - "true" to enable
# 2. cluster.zookeeper.address (pinpoint-web-root.properties, pinpoint-flink.properties) - address of the ZooKeeper instance that will be used to manage the cluster
# 3. cluster.web.tcp.port (pinpoint-web-root.properties) - any available port number (used to establish connection between web and collector)
# -------------------------------------------------------------------------------------------------
# Please be aware of the following:
#1. If the network between web, collector, and the agents are not stable, it is advisable not to use this feature.
#2. We recommend using the cluster.web.tcp.port option. However, in cases where the collector is unable to establish connection to the web, you may reverse this and make the web establish connection to the collector.
# In this case, you must set cluster.connect.address (pinpoint-web-root.properties); and cluster.listen.ip, cluster.listen.port (pinpoint-flink.properties) accordingly.
cluster.enable=false
cluster.zookeeper.address=#PINPOINT_ZOOKEEPER_ADDRESS#
cluster.zookeeper.sessiontimeout=30000
cluster.listen.ip=
cluster.listen.port=-1
#collector.admin.password=
#collector.admin.api.rest.active=
#collector.admin.api.jmx.active=
collector.spanEvent.sequence.limit=10000
# flink cluster
flink.cluster.enable=true
flink.cluster.zookeeper.address=#PINPOINT_ZOOKEEPER_ADDRESS#
flink.cluster.zookeeper.sessiontimeout=3000
flink.cluster.zookeeper.retry.interval=5000
flink.cluster.tcp.port=19994
# flink env init
flink.StreamExecutionEnvironment=server

View File

@@ -0,0 +1,25 @@
#!/bin/bash
# In flink version < 1.11 we can't use "job cluster" because it's not yet available
if [ "$1" = "standalone-job" ]; then
if [ -e /build/pinpoint-flink-job.jar ]; then
cd /build
zip -d pinpoint-flink-job.jar "profiles/release/*.properties"
sed -i -e "s/#PINPOINT_ZOOKEEPER_ADDRESS#/${PINPOINT_ZOOKEEPER_ADDRESS}/g" profiles/release/*
zip -r pinpoint-flink-job.jar profiles/
cd -
mv /build/pinpoint-flink-job.jar pinpoint-flink-job.jar
fi
shift
/docker-entrypoint.sh jobmanager &
sleep 5
if ! flink list | grep 'RUNNING'; then
flink run $@
fi
wait
else
exec /docker-entrypoint.sh $@
fi

View File

@@ -0,0 +1,48 @@
version: "3.6"
##
#to use this separately will require pinpoint-flink-job-{version}.jar built
#from pinpoint-flink module with correct properties under hbase.properties, pinpoint-flink.properties
#sample configs used to build pinpoint-flink/build/pinpoint-flink-job-{version}.jar is under build folder
##
services:
##flink
jobmanager:
build: Dockerfile
container_name: "${PINPOINT_FLINK_NAME}-jobmanager"
image: ${PINPOINT_FLINK_NAME}-flink:dev
expose:
- "6123"
ports:
- "${FLINK_WEB_PORT:-8081}:8081"
command: standalone-job -p 1 pinpoint-flink-job.jar -spring.profiles.active release
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
- PINPOINT_ZOOKEEPER_ADDRESS=${PINPOINT_ZOOKEEPER_ADDRESS}
networks:
- pinpoint
taskmanager:
build: Dockerfile
container_name: "${PINPOINT_FLINK_NAME}-taskmanager"
image: ${PINPOINT_FLINK_NAME}-flink:dev
expose:
- "6121"
- "6122"
- "19994"
ports:
- "6121:6121"
- "6122:6122"
- "19994:19994"
depends_on:
- jobmanager
command: taskmanager
links:
- "jobmanager:jobmanager"
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
networks:
- pinpoint
networks:
pinpoint:
driver: bridge