Hashicorp Nomad and Graphite 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
This plugin allows users to collect metrics from Hashicorp Nomad agents in distributed environments.
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
Hashicorp Nomad
The Hashicorp Nomad input plugin is designed to gather metrics from every Nomad agent within a cluster. By deploying Telegraf on each node, it can connect to the local Nomad agent, typically available at ‘http://127.0.0.1:4646’. With this setup, users can systematically collect and monitor metrics related to the performance and status of their Nomad environment, ensuring they maintain a healthy and efficient cluster operational state. This plugin enables visibility into the operational aspects of Nomad, which is essential for maintaining reliable cloud 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
Hashicorp Nomad
[[inputs.nomad]]
## URL for the Nomad agent
# url = "http://127.0.0.1:4646"
## Set response_timeout (default 5 seconds)
# response_timeout = "5s"
## Optional TLS Config
# tls_ca = /path/to/cafile
# tls_cert = /path/to/certfile
# tls_key = /path/to/keyfile
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
Hashicorp Nomad
-
Cluster Health Monitoring: Use the Hashicorp Nomad plugin to aggregate metrics across all nodes in a Nomad deployment. By monitoring health metrics such as allocation status, job performance, and resource utilization, operations teams can gain insights into the overall health of their deployment, quickly identify and resolve issues, and optimize resource allocation based on real-time data.
-
Performance Analytics for Job Execution: Leverage the metrics provided by Nomad to analyze job execution times and resource consumption. This use case enables developers to adjust job parameters effectively, optimize task performance, and illustrate trends over time, ultimately leading to increased efficiency and reduced costs in resource allocation.
-
Alerting on Critical Conditions: Implement alerting mechanisms based on metrics scraped from Nomad agents. By setting thresholds for critical metrics like CPU usage or failed job allocations, teams can proactively respond to potential issues before they escalate, ensuring higher uptime and reliability for applications running on the Nomad platform.
-
Integration with Visualization Tools: Use the data collected by the Hashicorp Nomad plugin to feed into visualization tools for real-time dashboards. This setup allows teams to monitor cluster workloads, job states, and system performance at a glance, facilitating better decision-making and strategic planning based on visual insights into the Nomad environment.
Graphite
-
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.
-
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.
-
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.
-
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
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 IntegrationKafka 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 IntegrationKinesis 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