在kubernetes中部署企业级ELK并使用其APM( 四 )
RUN wget -O /apm-agent.jar
完整的 Dockerfile 文件如下所示:
FROM openjdk:8-jdk-alpineENV ELASTIC_APM_VERSION "1.8.0"RUN wget -O /apm-agent.jar $ELASTIC_APM_VERSION/elastic-apm-agent-$ELASTIC_APM_VERSION.jarCOPY target/spring-boot-simple.jar /app.jarCMD java -jar /app.jar
然后需要在示例应用中添加上如下依赖关系 , 这样我们就可以集成 open-tracing 的依赖库或者使用 Elastic APM API 手动检测 。
然后部署一个示例代码 , 用于验证 。 (1)、先部署mongo , yaml清单如下:
---apiVersion: v1kind: Servicemetadata:name: mongonamespace: elasticlabels:app: mongospec:ports:- port: 27017protocol: TCPselector:app: mongo---apiVersion: apps/v1kind: StatefulSetmetadata:namespace: elasticname: mongolabels:app: mongospec:serviceName: "mongo"selector:matchLabels:app: mongotemplate:metadata:labels:app: mongospec:containers:- name: mongoimage: mongoports:- containerPort: 27017
(2)、部署java应用 , yaml清单如下:
---apiVersion: v1kind: Servicemetadata:namespace: elasticname: spring-boot-simplelabels:app: spring-boot-simplespec:type: NodePortports:- port: 8080protocol: TCPselector:app: spring-boot-simple---apiVersion: apps/v1kind: Deploymentmetadata:namespace: elasticname: spring-boot-simplelabels:app: spring-boot-simplespec:selector:matchLabels:app: spring-boot-simpletemplate:metadata:labels:app: spring-boot-simplespec:containers:- image: gjeanmart/spring-boot-simple:0.0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-boot-simplecommand:- "java"- "-javaagent:/apm-agent.jar"- "-Delastic.apm.active=$(ELASTIC_APM_ACTIVE)"- "-Delastic.apm.server_urls=$(ELASTIC_APM_SERVER)"- "-Delastic.apm.service_name=spring-boot-simple"- "-jar"- "app.jar"env:- name: SPRING_DATA_MONGODB_HOSTvalue: mongo- name: ELASTIC_APM_ACTIVEvalue: "true"- name: ELASTIC_APM_SERVERvalue:ports:- containerPort: 8080---
部署后观察pod的状态是否变为running 。
# kubectl get pod -n elastic NAMEREADYSTATUSRESTARTSAGEapm-server-667bfc5cff-7vqsd1/1Running034melasticsearch-client-f79cf4f7b-pbz9d1/1Running03h30melasticsearch-data-01/1Running03h33melasticsearch-master-77d5d6c9db-gklgd1/1Running03h36melasticsearch-master-77d5d6c9db-gvhcb1/1Running03h36melasticsearch-master-77d5d6c9db-pflz61/1Running03h36mkibana-6b9947fccb-4vp291/1Running03h3mmongo-01/1Running011mspring-boot-simple-fb5564885-rvh6q1/1Running080s
测试应用 。
# curl -X GET 172.17.100.50:30809Greetings from Spring Boot!# 获取所有发布的 messages 数据:# curl -X GET 172.17.100.50:30809/message# 使用 sleep=
然后我们可以在kibane的APM页面看到应用以及其数据了 。
文章插图
点击应用可以查看其性能追踪 。
文章插图
点击错误 , 可以查看错误数据 。
文章插图
而且还可以查到详细的错误信息 。
文章插图
还可以查看JVM的数据监控 。
文章插图
可以查看一些详细的数据 。
文章插图
- 麒麟|荣耀新款,麒麟810+4800万超清像素,你还在犹豫什么呢?
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 空调|让格力、海尔都担忧,中国取暖“新潮物”强势来袭,空调将成闲置品?
- 行业|现在行业内客服托管费用是怎么算的
- 国外|坐拥77件专利,打破国外的垄断,造出中国最先进的家电芯片
- 零部件|马瑞利发力电动产品,全球第七大零部件供应商在转型
- 手机基带|为了5G降低4G网速?中国移动回应来了:罪魁祸首不是运营商
- 通气会|12月4~6日,2020中国信息通信大会将在成都举行
- 中国|浅谈5G移动通信技术的前世和今生
- 俄罗斯手机市场|被三星、小米击败,华为手机在俄罗斯排名跌至第三!