Zipkin and InfluxDB Integration

Powerful performance with an easy integration, powered by Telegraf, the open source data connector built by InfluxData.

5B+

Telegraf downloads

#1

Time series database
Source: DB Engines

1B+

Downloads of InfluxDB

2,800+

Contributors

Table of Contents

Powerful Performance, Limitless Scale

Collect, organize, and act on massive volumes of high-velocity data. Any data is more valuable when you think of it as time series data. with InfluxDB, the #1 time series platform built to scale with Telegraf.

See Ways to Get Started

Input and output integration overview

The Zipkin Input Plugin allows for the collection of tracing information and timing data from microservices. This capability is essential for diagnosing latency troubles within complex service-oriented environments.

The InfluxDB plugin writes metrics to the InfluxDB HTTP or UDP service. It provides options to configure how metrics are sent and stored in the database.

Integration details

Zipkin

This plugin implements the Zipkin HTTP server to gather trace and timing data necessary for troubleshooting latency issues in microservice architectures. Zipkin is a distributed tracing system that helps gather timing data across various microservices, allowing teams to visualize the flow of requests and identify bottlenecks in performance. The plugin offers support for input traces in JSON or thrift formats based on the specified Content-Type. Additionally, it utilizes span metadata to track the timing of requests, enhancing the observability of applications that adhere to the OpenTracing standard. As an experimental feature, its configuration and schema may evolve over time to better align with user requirements and advancements in distributed tracing methodologies.

InfluxDB

This plugin supports writing metrics to InfluxDB over HTTP or UDP. It also includes options for authentication using usernames and passwords, as well as various configurations for timeouts, database management, and writing metrics.

Configuration

Zipkin

[[inputs.zipkin]]
  ## URL path for span data
  # path = "/api/v1/spans"

  ## Port on which Telegraf listens
  # port = 9411

  ## Maximum duration before timing out read of the request
  # read_timeout = "10s"
  ## Maximum duration before timing out write of the response
  # write_timeout = "10s"

InfluxDB

[[outputs.influxdb]]
  ## The full HTTP or UDP URL for your InfluxDB instance.
  ##
  ## Multiple URLs can be specified for a single cluster, only ONE of the
  ## urls will be written to each interval.
  # urls = ["unix:///var/run/influxdb.sock"]
  # urls = ["udp://127.0.0.1:8089"]
  # urls = ["http://127.0.0.1:8086"]

  ## Local address to bind when connecting to the server
  ## If empty or not set, the local address is automatically chosen.
  # local_address = ""

  ## The target database for metrics; will be created as needed.
  ## For UDP url endpoint database needs to be configured on server side.
  # database = "telegraf"

  ## The value of this tag will be used to determine the database.  If this
  ## tag is not set the 'database' option is used as the default.
  # database_tag = ""

  ## If true, the 'database_tag' will not be included in the written metric.
  # exclude_database_tag = false

  ## If true, no CREATE DATABASE queries will be sent.  Set to true when using
  ## Telegraf with a user without permissions to create databases or when the
  ## database already exists.
  # skip_database_creation = false

  ## Name of existing retention policy to write to.  Empty string writes to
  ## the default retention policy.  Only takes effect when using HTTP.
  # retention_policy = ""

  ## The value of this tag will be used to determine the retention policy.  If this
  ## tag is not set the 'retention_policy' option is used as the default.
  # retention_policy_tag = ""

  ## If true, the 'retention_policy_tag' will not be included in the written metric.
  # exclude_retention_policy_tag = false

  ## Write consistency (clusters only), can be: "any", "one", "quorum", "all".
  ## Only takes effect when using HTTP.
  # write_consistency = "any"

  ## Timeout for HTTP messages.
  # timeout = "5s"

  ## HTTP Basic Auth
  # username = "telegraf"
  # password = "metricsmetricsmetricsmetrics"

  ## HTTP User-Agent
  # user_agent = "telegraf"

  ## UDP payload size is the maximum packet size to send.
  # udp_payload = "512B"

  ## Optional TLS Config for use on HTTP connections.
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  # insecure_skip_verify = false

  ## HTTP Proxy override, if unset values the standard proxy environment
  ## variables are consulted to determine which proxy, if any, should be used.
  # http_proxy = "http://corporate.proxy:3128"

  ## Additional HTTP headers
  # http_headers = {"X-Special-Header" = "Special-Value"}

  ## HTTP Content-Encoding for write request body, can be set to "gzip" to
  ## compress body or "identity" to apply no encoding.
  # content_encoding = "gzip"

  ## When true, Telegraf will output unsigned integers as unsigned values,
  ## i.e.: "42u".  You will need a version of InfluxDB supporting unsigned
  ## integer values.  Enabling this option will result in field type errors if
  ## existing data has been written.
  # influx_uint_support = false

  ## When true, Telegraf will omit the timestamp on data to allow InfluxDB
  ## to set the timestamp of the data during ingestion. This is generally NOT
  ## what you want as it can lead to data points captured at different times
  ## getting omitted due to similar data.
  # influx_omit_timestamp = false

Input and output integration examples

Zipkin

  1. Latency Monitoring in Microservices: Use the Zipkin Input Plugin to capture and analyze tracing data from a microservices architecture. By visualizing the request flow and pinpointing latency sources, development teams can optimize service interactions, improve response times, and ensure a smoother user experience across services.

  2. Performance Optimization in Essential Services: Integrate the plugin within critical services to monitor not only the response times but also track specific annotations that could highlight performance issues. The ability to gather span data can help prioritize areas needing performance enhancements, leading to targeted improvements.

  3. Dynamic Service Dependency Mapping: With the collected trace data, automatically map service dependencies and visualize them in dashboards. This helps teams understand how different services interact and the impact of failures or slowdowns, ultimately leading to better architectural decisions and faster resolutions of issues.

  4. Anomaly Detection in Service Latency: Combine Zipkin data with machine learning models to detect unusual patterns in service latencies and request processing times. By automatically identifying anomalies, operations teams can respond proactively to emerging issues before they escalate into critical failures.

InfluxDB

  1. Metric Aggregation: Use the InfluxDB output plugin to aggregate metrics from various sources, such as system performance data, and send it to InfluxDB for centralized monitoring and analysis.

  2. Real-Time Data Ingestion: Set up the plugin to send real-time data from your application to InfluxDB, enabling your development team to dynamically monitor performance and user analytics.

  3. Multi-Tenancy Support: You can configure multiple [[outputs.influxdb]] sections to send data from different applications to separate InfluxDB instances, effectively supporting multi-tenancy in your monitoring architecture.

Feedback

Thank you for being part of our community! If you have any general feedback or found any bugs on these pages, we welcome and encourage your input. Please submit your feedback in the InfluxDB community Slack.

Powerful Performance, Limitless Scale

Collect, organize, and act on massive volumes of high-velocity data. Any data is more valuable when you think of it as time series data. with InfluxDB, the #1 time series platform built to scale with Telegraf.

See Ways to Get Started

Related Integrations

HTTP and InfluxDB Integration

The HTTP plugin collects metrics from one or more HTTP(S) endpoints. It supports various authentication methods and configuration options for data formats.

View Integration

Kafka and InfluxDB Integration

This plugin reads messages from Kafka and allows the creation of metrics based on those messages. It supports various configurations including different Kafka settings and message processing options.

View Integration

Kinesis and InfluxDB Integration

The Kinesis plugin allows for reading metrics from AWS Kinesis streams. It supports multiple input data formats and offers checkpointing features with DynamoDB for reliable message processing.

View Integration