All Projects → grafana → Agent

grafana / Agent

Licence: apache-2.0
Prometheus Metrics, Loki Logs, and Tempo Traces, optimized for Grafana Cloud.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Agent

cloud-computer
☁️ The Cloud Native Computer
Stars: ✭ 5 (-98.11%)
Mutual labels:  grafana, prometheus
loki exporter
Prometheus exporter to collect metrics and run queries against the Grafana Loki API.
Stars: ✭ 28 (-89.43%)
Mutual labels:  grafana, prometheus
jarvis
🍿 Simple Home Media Stack
Stars: ✭ 28 (-89.43%)
Mutual labels:  grafana, prometheus
epiphany
Cloud and on-premises automation for Kubernetes centered industrial grade solutions.
Stars: ✭ 114 (-56.98%)
Mutual labels:  grafana, prometheus
docker-prometheus
A minimal Prometheus Server, Node Exporter, BlackBox Exporter and Grafana implementation with `docker-compose`.
Stars: ✭ 71 (-73.21%)
Mutual labels:  grafana, prometheus
microservices-observability
🎉 Microservices Observability - Log Aggregation, Distributed Tracking, Metrics
Stars: ✭ 40 (-84.91%)
Mutual labels:  grafana, prometheus
laracom
laracom driven by go micro services
Stars: ✭ 37 (-86.04%)
Mutual labels:  grafana, prometheus
Kong-API-Manager
Kong API Manager with Prometheus And Graylog
Stars: ✭ 78 (-70.57%)
Mutual labels:  grafana, prometheus
chia-monitor
🍃 A comprehensive monitoring and alerting solution for the status of your Chia farmer and harvesters.
Stars: ✭ 131 (-50.57%)
Mutual labels:  grafana, prometheus
metrics-server-exporter
Metrics Server Exporter
Stars: ✭ 58 (-78.11%)
Mutual labels:  grafana, prometheus
octane-exporter
Export Laravel Octane metrics using this Prometheus exporter.
Stars: ✭ 14 (-94.72%)
Mutual labels:  grafana, prometheus
horizon-exporter
Export Laravel Horizon metrics using this Prometheus exporter.
Stars: ✭ 17 (-93.58%)
Mutual labels:  grafana, prometheus
remote-storage-wars
Prometheus remote storages playground
Stars: ✭ 22 (-91.7%)
Mutual labels:  grafana, prometheus
cdn-up-and-running
CDN Up and Running - an introduction about how modern CDNs works
Stars: ✭ 131 (-50.57%)
Mutual labels:  grafana, prometheus
tilt-pitch
Simple replacement for the Tilt Hydrometer mobile apps and TiltPi with lots of features
Stars: ✭ 32 (-87.92%)
Mutual labels:  grafana, prometheus
grafana-infinity-panel
Grafana Infinity Panel plugin. Visualize data in infinite ways using data viz APIs such as Vega
Stars: ✭ 17 (-93.58%)
Mutual labels:  grafana, prometheus
skalogs-bundle
Open Source data and event driven real time Monitoring and Analytics Platform
Stars: ✭ 16 (-93.96%)
Mutual labels:  grafana, prometheus
k3s-gitops
GitOps principles to define kubernetes cluster state via code
Stars: ✭ 103 (-61.13%)
Mutual labels:  grafana, prometheus
flask prometheus metrics
Prometheus Metrics for Flask Web App
Stars: ✭ 17 (-93.58%)
Mutual labels:  grafana, prometheus
centos-script
🎉centos下工具安装脚本,包含基础环境配置,Gitlab、Docker、LDAP、MongoDB、MySQL、RabbitMQ、Supervisor、Node、Python、zsh、rar、zabbix、k8s、prometheus、grafana等🎉
Stars: ✭ 121 (-54.34%)
Mutual labels:  grafana, prometheus

Grafana Agent logo

Grafana Agent is an telemetry collector for sending metrics, logs, and trace data to the opinionated Grafana observability stack. It works best with:

Users of Prometheus operating at a massive scale (i.e., millions of active series) can struggle to run an unsharded singleton Prometheus instance: it becomes a single point of failure and requires a giant machine with a lot of resources allocated to it. Even with proper sharding across multiple Prometheus instances, using Prometheus to send data to a cloud vendor can seem redundant: why pay for cloud storage if data is already stored locally?

The Grafana Agent uses the same code as Prometheus, but tackles these issues by only using the most relevant parts of Prometheus for interaction with hosted metrics:

  1. Service Discovery
  2. Scraping
  3. Write Ahead Log (WAL)
  4. Remote Write

On top of these, the Grafana Agent enables easier sharding mechanisms that enable users to shard Agents across their cluster and lower the memory requirements per machine.

A typical deployment of the Grafana Agent for Prometheus metrics can see up to a 40% reduction in memory usage with equal scrape loads.

The Grafana Agent it can be used to send Prometheus metrics to any system that supports the Prometheus remote_write API.

Trade-offs

By heavily optimizing Prometheus for remote write and resource reduction, some trade-offs have been made:

  • You can't query the Agent; you can only query metrics from the remote write storage.
  • Recording rules aren't supported.
  • Alerts aren't supported.
  • When sharding the Agent, if your node has problems that interrupt metric availability, metrics tracking that node won't be sent for alerting on.

While the Agent can't use recording rules and alerts, remote_write systems such as Cortex currently support server-side rules and alerts. Note that this trade-off means that reliability of alerts are tied to the reliability of the remote system and alerts will be delayed at least by the time it takes for samples to reach the remote system.

Roadmap

  • [x] Prometheus metrics
  • [x] A second clustering mode to solve sharding monitoring availability problems.
  • [x] Support for integrations (embedded exporters/automatic scrape configs)
  • [x] Promtail for Loki logs
  • [x] Tempo traces
  • [ ] carbon-relay-ng for Graphite metrics.
  • [ ] All-in-one installation script (metrics, logs, and traces)

Getting Started

The easiest way to get started with the Grafana Agent is to use the Kubernetes install scripts. The first script installs an Agent for collecting metrics, the second for collecting logs, and the third for collecting traces. Simply copy and paste the following lines in your terminal (requires envsubst (GNU gettext)):

NAMESPACE="default" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/grafana/agent/release/production/kubernetes/install.sh)" | kubectl apply -f -
NAMESPACE="default" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/grafana/agent/release/production/kubernetes/install-loki.sh)" | kubectl apply -f -
NAMESPACE="default" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/grafana/agent/release/production/kubernetes/install-tempo.sh)" | kubectl apply -f -

Other installation methods can be found in our Production documentation.

More detailed documentation is provided as part of the repository.

Example

The example/ folder contains docker-compose configs and a local k3d/Tanka environment. Both examples deploy the Agent, Cortex and Grafana for testing the agent. See the docker-compose README and the k3d example README for more information.

Prometheus Vendoring

The Grafana Agent vendors a downstream Prometheus repository maintained by Grafana Labs. This is done so experimental features Grafana Labs wants to contribute upstream can first be tested and iterated on quickly within the Agent. We aim to always base our vendor off of a recent official Prometheus release and to keep the experimental changes not available in the upstream repository to a minimum.

Please refer to the pinned Prometheus Vendor Update Tracking issue for our current vendored Prometheus release.

For more context on our vendoring strategy, read our repo maintenance guide.

Getting Help

If you have any questions or feedback regarding the Grafana Agent:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].