zipkin的mysql配置
如何配置zipkin使⽤mysql数据库
最近因为项⽬需要在看zipkin(关于应⽤程序性能监控的话题本⽂不展开讨论,只是介绍zipkin的数据存储配置)。
zipkin默认使⽤内存模式存储数据,⼀旦系统重启或者关闭就再也不到数据库,这对于学习和演⽰系统⽐较⽅便,但是对⽣产环境显然是不可接受的,zipkin 提供了多种数据持久存储⽅式,例如cassandra、cassandra3、elasticsearch、mysql。由于本⼈⽐较了解mysql同时项⽬中⼤多使⽤mysql数据库,就选择使⽤mysql数据库。
参考github/openzipkin/zipkin/tree/master/zipkin-storage/mysql 和github/openzipkin/zipkin/blob/master/zipkin-server/src/main/resour l 以及github/openzipkin/zipkin/blob/master/zipkin-server/src/main/java/zipkin/server/ZipkinServerConfiguration.java
创建对应的环境变量,例如根据ZipkinServerConfiguration.java, 我们可以知道环境变量pe是获取存储类型的, 因此我们可以在启动zipkin的shell或者windows中设置环境变量pe=mysql, 实际设置环境变量STORAGE_TYPE=mysql也是可以的
static final class StorageTypeMemAbsentOrEmpty implements Condition {
@Override public boolean matches(ConditionContext condition, AnnotatedTypeMetadata ignored) {
String storageType = Environment().getProperty("pe");
if (storageType == null) return true;
storageType = im();
if (storageType.isEmpty()) return true;
return storageType.equals("mem");
}
}
根据pe我们知道mysql host和port都有默认值,user和pass需要设置,根据实际情况我们设置了
MYSQL_USER=yang MYSQL_PASS=xxxx(密码设置为⾃⼰的实际密码,此处⽤xxx代替)
mysql:
host: ${MYSQL_HOST:localhost}
port: ${MYSQL_TCP_PORT:3306}
username: ${MYSQL_USER:}
password: ${MYSQL_PASS:}
db: ${MYSQL_DB:zipkin}
max-active: ${MYSQL_MAX_CONNECTIONS:10}
use-ssl: ${MYSQL_USE_SSL:false}
第三步,
在设置了第⼆部环境变量的shell中或者windows的cmd中启动zipkin。
java -jar zipkin-server-2.4.3-exec.jar >
因为zipkin是springboot程序也可以通过启动命令⾏设置环境变量
java -jar zipkin-server-2.4.3-exec.jar –STORAGE_TYPE=mysql –MYSQL_DB=zipkin –MYSQL_USER=yang –
MYSQL_PASS=xxx
⽇志中可以发现
2018-01-24 10:53:42.511 INFO 4360 — [ main] o.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-01-24 10:53:42.521 INFO 4360 — [ main] o.a.AnnotationMBeanExporter : Bean with name ‘mysqlDataSource’has been autodetected for JMX exposure
2018-01-24 10:53:42.521 INFO 4360 — [ main] o.a.AnnotationMBeanExporter : Located MBeanmysql下载starting the server
‘mysqlDataSource’: registering with JMX server as MBean
[com.zaxxer.hikari:name=mysqlDataSource,type=HikariDataSource]
2018-01-24 10:53:42.531 INFO 4360 — [ main] support.DefaultLifecycleProcessor : Starting beans in phase 0
2018-01-24 10:53:42.701 INFO 4360 — [ main] u.UndertowEmbeddedServletContainer : Undertow started on port(s) 9411 (http)
2018-01-24 10:53:42.711 INFO 4360 — [ main] zipkin.server.ZipkinServer : Started ZipkinServer in 10.232 seconds (JVM running for 11.114)
2018-01-24 10:54:22.104 INFO 4360 — [ XNIO-2 I/O-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting… 2018-01-24 10:54:22.296 INFO 4360 — [ XNIO-2 I/O-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
web UI
简要说明⼀下服务调⽤背景:有四个服务server1,到service4, 其中service1⼀⽅⾯直接调⽤了service4,同时⼜调⽤了service2,service2调⽤了service3和server4. 所以就如截图所⽰的,service1直接到service4, service1直接到service2, service2直接到service3和service4.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论