icinga2 icon indicating copy to clipboard operation
icinga2 copied to clipboard

OpenTsdbWriter#CheckResultHandler(): skip custom tags with empty values

Open Al2Klimov opened this issue 5 years ago • 2 comments

as the DB can't handle them.

fixes #7724

Al2Klimov avatar Mar 18 '20 13:03 Al2Klimov

@cla-bot check

Al2Klimov avatar Aug 04 '21 12:08 Al2Klimov

Test

DB: docker run --rm -itp 4242:4242 vulhub/opentsdb:2.4.0

/etc/icinga2/features-available/opentsdb.conf

object OpenTsdbWriter "opentsdb" {
  host = "127.0.0.1"
  port = 4242

  host_template = {
    metric = "icinga.host"
    tags = {
      zone = "$host.zone$"
      lolcat= ""
    }
  }
  service_template = {
    metric = "icinga.service.$service.check_command$"
    tags = {
      zone = "$service.zone$"
      lolcat= ""
    }
  }
}

Before

java.lang.IllegalArgumentException: invalid tag: lolcat=
	at net.opentsdb.core.Tags.parse(Tags.java:91)
	at net.opentsdb.tsd.PutDataPointRpc.importDataPoint(PutDataPointRpc.java:770)
	at net.opentsdb.tsd.PutDataPointRpc.execute(PutDataPointRpc.java:220)
	at net.opentsdb.tsd.RpcHandler.handleTelnetRpc(RpcHandler.java:161)
	at net.opentsdb.tsd.RpcHandler.messageReceived(RpcHandler.java:131)
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
	at org.jboss.netty.handler.timeout.IdleStateAwareChannelUpstreamHandler.handleUpstream(IdleStateAwareChannelUpstreamHandler.java:36)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(IdleStateHandler.java:294)
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
	at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
	at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
	at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
	at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.channel.SimpleChannelHandler.messageReceived(SimpleChannelHandler.java:142)
	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)
	at net.opentsdb.tsd.ConnectionManager.handleUpstream(ConnectionManager.java:128)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
	at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

After

[2024-01-18 11:19:32 +0100] debug/OpenTsdbWriter: Resolved macro '' for this host or service to '', skipping.

Al2Klimov avatar Jan 18 '24 12:01 Al2Klimov

Nice to have, but doesn't matter as we don't include perfdata writers on Windows.

Al2Klimov avatar Apr 04 '24 08:04 Al2Klimov