Reputation: 1
I'm here looking for some help. I'm trying to start a docker-compose config with a yaml file. I have an sql instance working with other services, but when I try to connect with zipkin (debug activated) I can see a message as follows:
DEBUG [/] 1 --- [ng-tasks-1-1019] z.s.i.h.ComponentHealth : ServiceConfigurationError: org.mariadb.jdbc.plugin.AuthenticationPlugin: Provider org.mariadb.jdbc.plugin.authentication.addon.SendGssApiAuthPacket could not be instantiated
If I send anything to zipkin it throws a stack trace error like this:
java.util.ServiceConfigurationError: org.mariadb.jdbc.plugin.AuthenticationPlugin: Provider org.mariadb.jdbc.plugin.authentication.addon.SendGssApiAuthPacket could not be instantiated at java.base/java.util.ServiceLoader.fail(Unknown Source) ~[?:?] at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(Unknown Source) ~[?:?] at java.base/java.util.ServiceLoader$ProviderImpl.get(Unknown Source) ~[?:?] at java.base/java.util.ServiceLoader$3.next(Unknown Source) ~[?:?] at org.mariadb.jdbc.plugin.authentication.AuthenticationPluginLoader.get(AuthenticationPluginLoader.java:32) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.client.impl.StandardClient.authenticationHandler(StandardClient.java:282) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.client.impl.StandardClient.(StandardClient.java:226) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.Driver.connect(Driver.java:68) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.Driver.connect(Driver.java:92) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.Driver.connect(Driver.java:26) ~[mariadb-java-client-3.4.1.jar:?] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:98) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) ~[HikariCP-5.1.0.jar:?] at zipkin2.storage.mysql.v1.HasTraceIdHigh.test(HasTraceIdHigh.java:33) ~[zipkin-storage-mysql-v1-3.4.3.jar:?] at zipkin2.storage.mysql.v1.Schema.(Schema.java:41) ~[zipkin-storage-mysql-v1-3.4.3.jar:?] at zipkin2.storage.mysql.v1.MySQLStorage.schema(MySQLStorage.java:122) ~[zipkin-storage-mysql-v1-3.4.3.jar:?] at zipkin2.storage.mysql.v1.MySQLStorage.spanConsumer(MySQLStorage.java:146) ~[zipkin-storage-mysql-v1-3.4.3.jar:?] at zipkin2.collector.Collector.store(Collector.java:190) ~[zipkin-collector-3.4.3.jar:?] at zipkin2.collector.Collector$StoreSpans.run(Collector.java:219) ~[zipkin-collector-3.4.3.jar:?] at com.linecorp.armeria.common.DefaultContextAwareRunnable.run(DefaultContextAwareRunnable.java:45) ~[armeria-1.31.0.jar:?] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?] at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?] at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.115.Final.jar:4.1.115.Final] at java.base/java.lang.Thread.run(Unknown Source) [?:?] Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.mariadb.jdbc.plugin.authentication.addon.SendGssApiAuthPacket at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) ~[?:?] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unknown Source) ~[?:?] at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(Unknown Source) ~[?:?] at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(Unknown Source) ~[?:?] at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(Unknown Source) ~[?:?] at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Unknown Source) ~[?:?] at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source) ~[?:?] at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?] ... 30 more Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException [in thread "armeria-common-blocking-tasks-1-1"] at org.mariadb.jdbc.plugin.authentication.addon.SendGssApiAuthPacket.(SendGssApiAuthPacket.java:30) ~[mariadb-java-client-3.4.1.jar:?] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) ~[?:?] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unknown Source) ~[?:?] at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(Unknown Source) ~[?:?] at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(Unknown Source) ~[?:?] at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(Unknown Source) ~[?:?] at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Unknown Source) ~[?:?] at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source) ~[?:?] at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?] at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(Unknown Source) ~[?:?] at java.base/java.util.ServiceLoader$ProviderImpl.get(Unknown Source) ~[?:?] at java.base/java.util.ServiceLoader$3.next(Unknown Source) ~[?:?] at org.mariadb.jdbc.plugin.authentication.AuthenticationPluginLoader.get(AuthenticationPluginLoader.java:32) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.client.impl.StandardClient.authenticationHandler(StandardClient.java:282) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.client.impl.StandardClient.(StandardClient.java:226) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.Driver.connect(Driver.java:68) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.Driver.connect(Driver.java:92) ~[mariadb-java-client-3.4.1.jar:?] at org.mariadb.jdbc.Driver.connect(Driver.java:26) ~[mariadb-java-client-3.4.1.jar:?] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:98) ~[HikariCP-5.1.0.jar:?] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) ~[HikariCP-5.1.0.jar:?] at zipkin2.storage.mysql.v1.MySQLStorage.check(MySQLStorage.java:150) ~[zipkin-storage-mysql-v1-3.4.3.jar:?] at zipkin2.server.internal.health.ComponentHealth.ofComponent(ComponentHealth.java:22) ~[classes/:?] at zipkin2.server.internal.health.ZipkinHealthController.lambda$health$1(ZipkinHealthController.java:62) ~[classes/:?] at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source) ~[?:?] ... 8 more
I have tried:
The only way I made zipkin work was launching "on memory". What am I doing wrong?
this is part of my yaml file:
networks:
env_prod:
driver: bridge
#activate ipv6
driver_opts:
com.docker.network.enable_ipv6: "true"
#IP Adress Manager
ipam:
driver: default
config:
-
subnet: 172.16.232.0/24
gateway: 172.16.232.1
-
subnet: "2001:3974:3979::/64"
gateway: "2001:3974:3979::1"
services:
mysql:
container_name: mysql
image: mysql:8
restart: always
networks:
- env_prod
expose:
- 3306
zipkin:
container_name: zipkin
image: openzipkin/zipkin:latest
restart: always
networks:
- env_prod
ports:
- 9411:9411
environment:
- JAVA_OPTS=-Dlogging.level.zipkin2=DEBUG -Dlogging.level.org.springframework=DEBUG
- STORAGE_TYPE=mysql
- MYSQL_HOST=mysql
- MYSQL_DB=zipkin
- MYSQL_USER=zipkin
- MYSQL_PASS=zipkinpass
- MYSQL_USE_SSL=false
thanks in advance for all your help!
Upvotes: 0
Views: 29
Reputation: 1
I couldn't make it work with any of the 3 dbs I mentioned. But then, I looked into the image working of zipkin and I found that the "MySql" connection actually is a "MariaDB" connection. So I started up a container with this DB and almost worked, just didn't created the necessary tables.
This is my yaml:
zipkin-storage:
container_name: zipkin_storage
image: mariadb:10.6.20-ubi9
restart: always
deploy:
resources:
limits:
cpus: "0.3"
memory: 100M
networks:
- env_prod
expose:
- 3306
environment:
MARIADB_ROOT_PASSWORD: zipkin_root
MARIADB_DATABASE: zipkin
MARIADB_USER: zipkin
MARIADB_PASSWORD: zipkinpass
volumes:
- /Users/myusr/Dockers/zipkin_storage/init-zipkin.sql:/docker-entrypoint-initdb.d/init-zipkin.sql
zipkin:
container_name: zipkin
image: openzipkin/zipkin:latest
restart: always
networks:
- env_prod
ports:
- 9411:9411
environment:
- STORAGE_TYPE=mysql
- MYSQL_HOST=zipkin-storage
- MYSQL_DB=zipkin
- MYSQL_USER=zipkin
- MYSQL_PASS=zipkinpass
Where init-zipkin.sql is just the creation script:
USE zipkin;
CREATE TABLE `zipkin_annotations` (
`trace_id_high` bigint(20) NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
`trace_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.trace_id',
`span_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.id',
`a_key` varchar(255) NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1',
`a_value` blob DEFAULT NULL COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB',
`a_type` int(11) NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation',
`a_timestamp` bigint(20) DEFAULT NULL COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp',
`endpoint_ipv4` int(11) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null',
`endpoint_ipv6` binary(16) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address',
`endpoint_port` smallint(6) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null',
`endpoint_service_name` varchar(255) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null',
UNIQUE KEY `trace_id_high` (`trace_id_high`,`trace_id`,`span_id`,`a_key`,`a_timestamp`) COMMENT 'Ignore insert on duplicate',
KEY `trace_id_high_2` (`trace_id_high`,`trace_id`,`span_id`) COMMENT 'for joining with zipkin_spans',
KEY `trace_id_high_3` (`trace_id_high`,`trace_id`) COMMENT 'for getTraces/ByIds',
KEY `endpoint_service_name` (`endpoint_service_name`) COMMENT 'for getTraces and getServiceNames',
KEY `a_type` (`a_type`) COMMENT 'for getTraces and autocomplete values',
KEY `a_key` (`a_key`) COMMENT 'for getTraces and autocomplete values',
KEY `trace_id` (`trace_id`,`span_id`,`a_key`) COMMENT 'for dependencies job'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci ROW_FORMAT=COMPRESSED;
CREATE TABLE `zipkin_dependencies` (
`day` date NOT NULL,
`parent` varchar(255) NOT NULL,
`child` varchar(255) NOT NULL,
`call_count` bigint(20) DEFAULT NULL,
`error_count` bigint(20) DEFAULT NULL,
PRIMARY KEY (`day`,`parent`,`child`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci ROW_FORMAT=COMPRESSED;
CREATE TABLE `zipkin_spans` (
`trace_id_high` bigint(20) NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
`trace_id` bigint(20) NOT NULL,
`id` bigint(20) NOT NULL,
`name` varchar(255) NOT NULL,
`remote_service_name` varchar(255) DEFAULT NULL,
`parent_id` bigint(20) DEFAULT NULL,
`debug` bit(1) DEFAULT NULL,
`start_ts` bigint(20) DEFAULT NULL COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL',
`duration` bigint(20) DEFAULT NULL COMMENT 'Span.duration(): micros used for minDuration and maxDuration query',
PRIMARY KEY (`trace_id_high`,`trace_id`,`id`),
KEY `trace_id_high` (`trace_id_high`,`trace_id`) COMMENT 'for getTracesByIds',
KEY `name` (`name`) COMMENT 'for getTraces and getSpanNames',
KEY `remote_service_name` (`remote_service_name`) COMMENT 'for getTraces and getRemoteServiceNames',
KEY `start_ts` (`start_ts`) COMMENT 'for getTraces ordering and range'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci ROW_FORMAT=COMPRESSED;
SELECT 'Tablas creadas correctamente.' AS Info;
Upvotes: 0