mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 20:22:12 +08:00
17
README.md
17
README.md
@@ -1,13 +1,13 @@
|
||||
|
||||
---
|
||||
|
||||

|
||||

|
||||
|
||||
**一站式`Apache Kafka`集群指标监控与运维管控平台**
|
||||
|
||||
|
||||
|
||||
阅读本README文档,您可以了解到滴滴Logi-KafkaManager的用户群体、产品定位等信息,并通过体验地址,快速体验Kafka集群指标监控与运维管控的全流程。<br>若滴滴Logi-KafkaManager已在贵司的生产环境进行使用,并想要获得官方更好地支持和指导,可以通过[`OCE认证`](http://obsuite.didiyun.com/open/openAuth),加入官方交流平台。
|
||||
阅读本README文档,您可以了解到滴滴Logi-KafkaManager的用户群体、产品定位等信息,并通过体验地址,快速体验Kafka集群指标监控与运维管控的全流程。
|
||||
|
||||
|
||||
## 1 产品简介
|
||||
@@ -73,24 +73,21 @@
|
||||
|
||||
|
||||

|
||||
微信加群:关注公众号 Obsuite(官方公众号) 回复 "Logi加群"
|
||||
|
||||
## 4 OCE认证
|
||||
OCE是一个认证机制和交流平台,为滴滴Logi-KafkaManager生产用户量身打造,我们会为OCE企业提供更好的技术支持,比如专属的技术沙龙、企业一对一的交流机会、专属的答疑群等,如果贵司Logi-KafkaManager上了生产,[快来加入吧](http://obsuite.didiyun.com/open/openAuth)
|
||||
微信加群:添加mike_zhangliang的微信号备注Logi加群或关注公众号 云原生可观测性 回复 "Logi加群"
|
||||
|
||||
|
||||
## 5 项目成员
|
||||
## 4 项目成员
|
||||
|
||||
### 5.1 内部核心人员
|
||||
### 4.1 内部核心人员
|
||||
|
||||
`iceyuhui`、`liuyaguang`、`limengmonty`、`zhangliangmike`、`nullhuangyiming`、`zengqiao`、`eilenexuzhe`、`huangjiaweihjw`、`zhaoyinrui`、`marzkonglingxu`、`joysunchao`
|
||||
|
||||
|
||||
### 5.2 外部贡献者
|
||||
### 4.2 外部贡献者
|
||||
|
||||
`fangjunyu`、`zhoutaiyang`
|
||||
|
||||
|
||||
## 6 协议
|
||||
## 5 协议
|
||||
|
||||
`kafka-manager`基于`Apache-2.0`协议进行分发和使用,更多信息参见[协议文件](./LICENSE)
|
||||
|
||||
@@ -1,43 +1,28 @@
|
||||
FROM openjdk:16-jdk-alpine3.13
|
||||
|
||||
LABEL author="yangvipguang"
|
||||
|
||||
ENV VERSION 2.3.1
|
||||
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||
RUN apk add --no-cache --virtual .build-deps \
|
||||
font-adobe-100dpi \
|
||||
ttf-dejavu \
|
||||
fontconfig \
|
||||
curl \
|
||||
apr \
|
||||
apr-util \
|
||||
apr-dev \
|
||||
tomcat-native \
|
||||
&& apk del .build-deps
|
||||
|
||||
RUN apk add --no-cache tini
|
||||
|
||||
|
||||
LABEL author="fengxsong"
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add --no-cache tini
|
||||
|
||||
ENV VERSION 2.4.2
|
||||
WORKDIR /opt/
|
||||
|
||||
ENV AGENT_HOME /opt/agent/
|
||||
|
||||
WORKDIR /tmp
|
||||
|
||||
COPY $JAR_PATH/kafka-manager.jar app.jar
|
||||
# COPY application.yml application.yml ##默认使用helm 挂载,防止敏感配置泄露
|
||||
|
||||
COPY docker-depends/config.yaml $AGENT_HOME
|
||||
COPY docker-depends/jmx_prometheus_javaagent-0.15.0.jar $AGENT_HOME
|
||||
|
||||
ENV JAVA_AGENT="-javaagent:$AGENT_HOME/jmx_prometheus_javaagent-0.15.0.jar=9999:$AGENT_HOME/config.yaml"
|
||||
ENV JAVA_HEAP_OPTS="-Xms1024M -Xmx1024M -Xmn100M "
|
||||
ENV JAVA_OPTS="-verbose:gc \
|
||||
-XX:MaxMetaspaceSize=256M -XX:+DisableExplicitGC -XX:+UseStringDeduplication \
|
||||
-XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:-UseContainerSupport"
|
||||
-XX:MaxMetaspaceSize=256M -XX:+DisableExplicitGC -XX:+UseStringDeduplication \
|
||||
-XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:-UseContainerSupport"
|
||||
|
||||
RUN wget https://github.com/didi/Logi-KafkaManager/releases/download/v${VERSION}/kafka-manager-${VERSION}.tar.gz && \
|
||||
tar xvf kafka-manager-${VERSION}.tar.gz && \
|
||||
mv kafka-manager-${VERSION}/kafka-manager.jar /opt/app.jar && \
|
||||
rm -rf kafka-manager-${VERSION}*
|
||||
|
||||
EXPOSE 8080 9999
|
||||
|
||||
ENTRYPOINT ["tini", "--"]
|
||||
|
||||
CMD ["sh","-c","java -jar $JAVA_AGENT $JAVA_HEAP_OPTS $JAVA_OPTS app.jar --spring.config.location=application.yml"]
|
||||
CMD [ "sh", "-c", "java -jar $JAVA_AGENT $JAVA_HEAP_OPTS $JAVA_OPTS app.jar --spring.config.location=application.yml"]
|
||||
6
container/helm/Chart.lock
Normal file
6
container/helm/Chart.lock
Normal file
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: mysql
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 8.6.3
|
||||
digest: sha256:d250c463c1d78ba30a24a338a06a551503c7a736621d974fe4999d2db7f6143e
|
||||
generated: "2021-06-24T11:34:54.625217+08:00"
|
||||
@@ -1,6 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: didi-km
|
||||
description: A Helm chart for Kubernetes
|
||||
description: Logi-KafkaManager
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
@@ -21,4 +21,9 @@ version: 0.1.0
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
# It is recommended to use it with quotes.
|
||||
appVersion: "1.16.0"
|
||||
appVersion: "2.4.2"
|
||||
dependencies:
|
||||
- condition: mysql.enabled
|
||||
name: mysql
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 8.x.x
|
||||
|
||||
BIN
container/helm/charts/mysql-8.6.3.tgz
Normal file
BIN
container/helm/charts/mysql-8.6.3.tgz
Normal file
Binary file not shown.
@@ -1,7 +1,17 @@
|
||||
{{- define "datasource.mysql" -}}
|
||||
{{- if .Values.mysql.enabled }}
|
||||
{{- printf "%s-mysql" (include "didi-km.fullname" .) -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" .Values.externalDatabase.host -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: km-cm
|
||||
name: {{ include "didi-km.fullname" . }}-configs
|
||||
labels:
|
||||
{{- include "didi-km.labels" . | nindent 4 }}
|
||||
data:
|
||||
application.yml: |
|
||||
server:
|
||||
@@ -17,9 +27,9 @@ data:
|
||||
name: kafkamanager
|
||||
datasource:
|
||||
kafka-manager:
|
||||
jdbc-url: jdbc:mysql://xxxxx:3306/kafka-manager?characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
|
||||
username: admin
|
||||
password: admin
|
||||
jdbc-url: jdbc:mysql://{{ include "datasource.mysql" . }}:3306/{{ .Values.mysql.auth.database }}?characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
|
||||
username: {{ .Values.mysql.auth.username }}
|
||||
password: {{ .Values.mysql.auth.password }}
|
||||
driver-class-name: com.mysql.jdbc.Driver
|
||||
main:
|
||||
allow-bean-definition-overriding: true
|
||||
@@ -54,7 +64,10 @@ data:
|
||||
sync-topic-enabled: false # 未落盘的Topic定期同步到DB中
|
||||
|
||||
account:
|
||||
# ldap settings
|
||||
ldap:
|
||||
enabled: false
|
||||
authUserRegistration: false
|
||||
|
||||
kcm:
|
||||
enabled: false
|
||||
|
||||
@@ -42,6 +42,10 @@ spec:
|
||||
protocol: TCP
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: configs
|
||||
mountPath: /tmp/application.yml
|
||||
subPath: application.yml
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
@@ -54,3 +58,7 @@ spec:
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: configs
|
||||
configMap:
|
||||
name: {{ include "didi-km.fullname" . }}-configs
|
||||
|
||||
@@ -5,13 +5,14 @@
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: docker.io/yangvipguang/km
|
||||
repository: docker.io/fengxsong/logi-kafka-manager
|
||||
pullPolicy: IfNotPresent
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
tag: "v18"
|
||||
tag: "v2.4.2"
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
# fullnameOverride must set same as release name
|
||||
fullnameOverride: "km"
|
||||
|
||||
serviceAccount:
|
||||
@@ -59,10 +60,10 @@ resources:
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
limits:
|
||||
cpu: 50m
|
||||
cpu: 500m
|
||||
memory: 2048Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
|
||||
autoscaling:
|
||||
@@ -77,3 +78,16 @@ nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
# more configurations are set with configmap in file template/configmap.yaml
|
||||
externalDatabase:
|
||||
host: ""
|
||||
mysql:
|
||||
# if enabled is set to false, then you should manually specified externalDatabase.host
|
||||
enabled: true
|
||||
architecture: standalone
|
||||
auth:
|
||||
rootPassword: "s3cretR00t"
|
||||
database: "logi_kafka_manager"
|
||||
username: "logi_kafka_manager"
|
||||
password: "n0tp@55w0rd"
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
|
||||
| 模块 |对比指标 |底层依赖 |开源版 |商业版 |备注 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 服务发现 | bootstrap地址变更对客户端无影响 | | | 是| |
|
||||
| 安全管控 | 身份鉴权(appID+password) | | | 是 | |
|
||||
| | 权限鉴权(Topic+appID) | | | 是 | |
|
||||
| 服务发现 | bootstrap地址变更对客户端无影响 | Gateway | | 是| |
|
||||
| 安全管控 | 身份鉴权(appID+password) | Gateway | | 是 | |
|
||||
| | 权限鉴权(Topic+appID) | Gateway | | 是 | |
|
||||
| 指标监控 | Topic实时流量、历史流量 | | 是 | 是 | |
|
||||
| | Broker实时耗时、历史耗时 | 引擎 | | 是 | |
|
||||
| | 分区落盘 | 引擎 | | 是 | |
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
**总结**
|
||||
|
||||
Logi-KafkaManager的商业特性体现在在滴滴Kafka Gateway、滴滴Kafka引擎、内部沉淀出的资源治理专家经验、可定制化的健康分算法。
|
||||
滴滴LogiKM的商业特性体现在滴滴Kafka Gateway、滴滴Kafka引擎、内部沉淀出的资源治理专家经验、可定制化的健康分算法。
|
||||
从场景来看,滴滴Logi-KafkaManager的开源版本在kafka集群运维、的Topic管理、监控告警、资源治理等kafka核心场景都充分开源用户的使用需求并且有着出色的表现。而商业版相较于开源版在安全管控、流量管控、更丰富的指标监控、资源治理专家经验的具有明显提升,更加符合企业业务需求。
|
||||
除此之外,商业版还可根据企业实际需求对平台源码进行定制化改造,并提供运维保障,稳定性保障,运营保障等服务。
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@ public class Converts {
|
||||
orderDO.setApprover("");
|
||||
orderDO.setOpinion("");
|
||||
orderDO.setExtensions(orderDTO.getExtensions());
|
||||
orderDO.setType(orderDTO.getType());
|
||||
return orderDO;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user