DescartesResearch / TeaStore

A micro-service reference test application for model extraction, cloud management, energy efficiency, power prediction, single- and multi-tier auto-scaling
https://se.informatik.uni-wuerzburg.de
Apache License 2.0
118 stars 136 forks source link

Kieker AMQP writer broken since kieker upgrade #234

Open SimonEismann opened 1 year ago

SimonEismann commented 1 year ago

In the newest version, using the AMQP writer for the kieker logs fails with the following message:

[main] INFO tools.descartes.teastore.persistence.daemons.InitialDataGenerationDaemon - Database is empty. Generating new database content
[main] INFO kieker.monitoring.core.configuration.ConfigurationFactory - Loading configuration from JVM-specified location: '/kieker/config/kieker.monitoring.properties'
[main] INFO kieker.monitoring.core.controller.TCPController - Could not parse port for the TCPController, deactivating this option. Received string was:
WriterController: WriterClassName: kieker.monitoring.writer.collector.ChunkingCollector
ChunkingCollector: IRawDataWriter name: kieker.monitoring.writer.amqp.ChunkingAmqpWriter
IRawDataWriter: Failed to load class for name 'kieker.monitoring.writer.amqp.ChunkingAmqpWriter'
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at kieker.common.util.classpath.InstantiationFactory.createAndInitialize(InstantiationFactory.java:79)
        at kieker.monitoring.writer.collector.ChunkingCollector.<init>(ChunkingCollector.java:135)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at kieker.common.util.classpath.InstantiationFactory.createAndInitialize(InstantiationFactory.java:79)
        at kieker.monitoring.core.controller.AbstractController.createAndInitialize(AbstractController.java:117)
        at kieker.monitoring.core.controller.WriterController.<init>(WriterController.java:124)
        at kieker.monitoring.core.controller.MonitoringController.<init>(MonitoringController.java:72)
        at kieker.monitoring.core.controller.MonitoringController.createInstance(MonitoringController.java:92)
        at kieker.monitoring.core.controller.MonitoringController$SingletonHelper.<clinit>(MonitoringController.java:412)
        at kieker.monitoring.core.controller.MonitoringController.getInstance(MonitoringController.java:404)
        at tools.descartes.teastore.kieker.probes.AbstractOperationExecutionWithParameterAspect.<clinit>(AbstractOperationExecutionWithParameterAspect.java:33)
        at tools.descartes.teastore.persistence.domain.CategoryRepository.createEntity(CategoryRepository.java:43)
        at tools.descartes.teastore.persistence.repository.DataGenerator.generateCategories(DataGenerator.java:223)
        at tools.descartes.teastore.persistence.repository.DataGenerator.generateDatabaseContent(DataGenerator.java:200)
        at tools.descartes.teastore.persistence.daemons.InitialDataGenerationDaemon.contextInitialized(InitialDataGenerationDaemon.java:69)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4717)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5179)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1027)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:2001)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:828)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:478)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1708)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:320)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
        at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
        at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:948)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1388)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:921)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:437)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:934)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: java.net.UnknownHostException: rabbitmq: Temporary failure in name resolution
        at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
        at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:929)
        at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1519)
        at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:848)
        at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1509)
        at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1368)
        at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1302)
        at com.rabbitmq.client.DnsRecordIpAddressResolver.resolveIpAddresses(DnsRecordIpAddressResolver.java:83)
        at com.rabbitmq.client.DnsRecordIpAddressResolver.getAddresses(DnsRecordIpAddressResolver.java:73)
        at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:58)
        at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:160)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1216)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1173)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1131)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1294)
        at kieker.monitoring.writer.amqp.ChunkingAmqpWriter.createConnection(ChunkingAmqpWriter.java:98)
        at kieker.monitoring.writer.amqp.ChunkingAmqpWriter.<init>(ChunkingAmqpWriter.java:85)
        ... 63 more
ChunkingCollector: IRawDataWriter: null
[main] INFO kieker.monitoring.core.controller.StateController - Enabling monitoring
Exception in thread "Thread-4" java.lang.NullPointerException
        at kieker.monitoring.writer.collector.ChunkWriterTask.initialize(ChunkWriterTask.java:111)
        at kieker.monitoring.writer.collector.ChunkingCollector.onStarting(ChunkingCollector.java:176)
        at kieker.monitoring.writer.MonitoringWriterThread.run(MonitoringWriterThread.java:60)
[main] INFO kieker.monitoring.core.controller.MonitoringController - Current State of kieker.monitoring (1.15-SNAPSHOT) Status: 'enabled'
        Name: 'KIEKER'; Hostname: 'b8d411cb47cc'; experimentID: '1'
JMXController: JMX disabled
TimeSource: 'kieker.monitoring.timer.SystemNanoTimer'
        Time in nanoseconds (with nanoseconds precision) since Thu Jan 01 00:00:00 UTC 1970'
ProbeController: disabled
WriterController:
        Queue type: class kieker.monitoring.queue.BlockingQueueDecorator
        Queue capacity: 10000
        Insert behavior (a.k.a. QueueFullBehavior): class kieker.monitoring.queue.behavior.BlockOnFailedInsertBehavior
                numBlocked: 0
Writer: 'kieker.monitoring.writer.collector.ChunkingCollector'
        Configuration:
                kieker.monitoring.writer.collector.ChunkingCollector.chunkSize='32'
                kieker.monitoring.writer.collector.ChunkingCollector.queueSize='16384'
                kieker.monitoring.writer.collector.ChunkingCollector.deferredWriteDelay='500'
                kieker.monitoring.writer.collector.ChunkingCollector.serializer='kieker.monitoring.writer.serializer.BinarySerializer'
                kieker.monitoring.writer.collector.ChunkingCollector.writer='kieker.monitoring.writer.amqp.ChunkingAmqpWriter'
                kieker.monitoring.writer.collector.ChunkingCollector.taskRunInterval='20'
                kieker.monitoring.writer.collector.ChunkingCollector.queueType='java.util.concurrent.ArrayBlockingQueue'
                kieker.monitoring.writer.collector.ChunkingCollector.outputBufferSize='65536'

        Automatic assignment of logging timestamps: 'true'
Sampling Controller: Periodic Sensor available: Poolsize: '0'; Scheduled Tasks: '0'