Kibana and Graphite Integration

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

info

This is not the recommended configuration for real-time query at scale. For query and compression optimization, high-speed ingest, and high availability, you may want to consider Kibana and InfluxDB.

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 Kibana plugin enables users to obtain status metrics from Kibana, a data visualization tool for Elasticsearch. By connecting to the Kibana API, this plugin captures various performance indicators and the health status of the Kibana service.

The Graphite plugin enables users to send metrics collected by Telegraf into Graphite via TCP. This integration allows for efficient storage and visualization of time-series data using Graphite’s powerful capabilities.

Integration details

Kibana

The Kibana input plugin is designed to query the Kibana API to gather service status information. This plugin allows users to monitor their Kibana instances effectively by pulling metrics related to its health, performance, and operational metrics. By querying the Kibana API, this plugin provides insights into key parameters such as the current health status (green, yellow, red), uptime, heap memory usage, and request performance metrics. This information is crucial for administrators and operational teams looking to maintain optimal system performance and quickly address any issues that may arise. The configuration settings allow for flexible integration with other components in a microservices architecture, facilitating comprehensive monitoring solutions aligned with organizational needs, making it an essential tool for those leveraging the Elastic Stack in their infrastructure.

Graphite

This plugin writes metrics to Graphite via raw TCP, allowing for seamless integration of Telegraf collected metrics into the Graphite ecosystem. With this plugin, users can configure multiple TCP endpoints for load balancing, ensuring high availability and reliability in metric transmission. The ability to customize metric naming with prefixes and utilize various templating options enhances flexibility in how data is represented within Graphite. Additionally, support for Graphite tags and options for strict sanitization of metric names allow for robust data management, catering to the varying needs of users. This capability is essential for organizations looking to leverage Graphite’s powerful metrics storage and visualization while maintaining control over data representation.

Configuration

Kibana

[[inputs.kibana]]
  ## Specify a list of one or more Kibana servers
  servers = ["http://localhost:5601"]

  ## Timeout for HTTP requests
  timeout = "5s"

  ## HTTP Basic Auth credentials
  # username = "username"
  # password = "pa$$word"

  ## Optional TLS Config
  # 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
 
  ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as
  ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts).
  ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is
  ## provided, Telegraf will use the specified URL as HTTP proxy.
  # use_system_proxy = false
  # http_proxy_url = "http://localhost:8888"

Graphite

# Configuration for Graphite server to send metrics to
[[outputs.graphite]]
  ## TCP endpoint for your graphite instance.
  ## If multiple endpoints are configured, the output will be load balanced.
  ## Only one of the endpoints will be written to with each iteration.
  servers = ["localhost:2003"]

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

  ## Prefix metrics name
  prefix = ""

  ## Graphite output template
  ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
  template = "host.tags.measurement.field"

  ## Strict sanitization regex
  ## This is the default sanitization regex that is used on data passed to the
  ## graphite serializer. Users can add additional characters here if required.
  ## Be aware that the characters, '/' '@' '*' are always replaced with '_',
  ## '..' is replaced with '.', and '\' is removed even if added to the
  ## following regex.
  # graphite_strict_sanitize_regex = '[^a-zA-Z0-9-:._=\p{L}]'

  ## Enable Graphite tags support
  # graphite_tag_support = false

  ## Applied sanitization mode when graphite tag support is enabled.
  ## * strict - uses the regex specified above
  ## * compatible - allows for greater number of characters
  # graphite_tag_sanitize_mode = "strict"

  ## Character for separating metric name and field for Graphite tags
  # graphite_separator = "."

  ## Graphite templates patterns
  ## 1. Template for cpu
  ## 2. Template for disk*
  ## 3. Default template
  # templates = [
  #  "cpu tags.measurement.host.field",
  #  "disk* measurement.field",
  #  "host.measurement.tags.field"
  #]

  ## timeout in seconds for the write connection to graphite
  # timeout = "2s"

  ## Optional TLS Config
  # 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

Input and output integration examples

Kibana

  1. Kibana Health Monitoring: Implement a dedicated dashboard to periodically poll the metrics from Kibana. This setup allows operations teams to have a real-time view of their Kibana instances’ health and metrics, enabling proactive performance management and immediate response capabilities in case of service degradation or failure.

  2. Automated Alerting System: Integrate the metrics gathered from the Kibana plugin with an alerting system using tools like Prometheus or PagerDuty. By setting thresholds for key metrics (e.g., response time or heap usage), this integration can automatically notify the relevant personnel of performance issues, thereby reducing downtime and improving the response time for operational issues.

  3. Resource Optimization Strategy: Use the memory usage and response time metrics collected by this plugin to formulate strategies for optimizing resource allocation in Kubernetes or other orchestration platforms. By analyzing trends over time, teams can adjust resource limits and requests dynamically, ensuring that Kibana instances function efficiently without over-provisioning resources.

Graphite

  1. Dynamic Metric Visualization: The Graphite plugin can be utilized to feed real-time metrics from various sources, such as application performance data or server health metrics, into Graphite. This dynamic integration allows teams to create interactive dashboards that visualize key performance indicators, track trends over time, and make data-driven decisions to enhance system performance.

  2. Load Balanced Metrics Collection: By configuring multiple TCP endpoints within the plugin, organizations can implement load balancing for metric transmission. This use case ensures that metric delivery is both resilient and efficient, reducing the risk of data loss during high-traffic periods and maintaining a reliable flow of information to Graphite.

  3. Customized Metrics Tagging: With support for Graphite tags, users can employ the Graphite plugin to enhance the granularity of their metrics. Tagging metrics with relevant information, such as application environment or service type, allows for more refined queries and analytics, enabling teams to drill down into specific areas of interest for better operational insights.

  4. Enhanced Data Sanitization: Leveraging the plugin’s strict sanitization options, users can ensure that their metric names comply with Graphite’s requirements. This proactive measure eliminates potential issues arising from invalid characters in metric names, allowing for cleaner data management and more accurate visualizations.

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