release v0.24.1
Prepare for 0.24.1 (#1615)

* Set up the default logger parameters (#1611)

* Set up the default logger parameters

Signed-off-by: Paschalis Tsilias <paschalis.tsilias@grafana.com>

* Set up the default logger parameters vol.2

Signed-off-by: Paschalis Tsilias <paschalis.tsilias@grafana.com>
(cherry picked from commit 3b8d8b9f3a5b1e3a7081559cf0b136b031044e69)

* pkg/operator/config: don't set non-existent username_file field (#1612)

PR #1441 introduced a change to use password_file for basic auth, but
accidentally also generated a username_file field which doesn't exist.

(cherry picked from commit 378ffeda5f9107b8acc0e24b21bd2787bc9d6d78)

* Bump GitHub exporter version (#1589)

* bump version of github-exporter

This bumps the version of github-exporter to the latest upstream commit,
fixing numerous bugs since the latest development release.

Closes #1588.

* add changelog entry

Also add a retroactive changelog entry for #1584

(cherry picked from commit 61e8f376416324538b943d5148fb3346183d6f5e)

* udpate import order in agentctl main.go (#1584)

(cherry picked from commit 78aa6238ab8a17fd9ab661625a0ecd36076077cc)

* Embed time zone data for logs package (#1594)

(cherry picked from commit 2c53aff50ded51277078f3b13377baf8a875f8e1)

* changelog: add changelog entry for agentctl version info bugfix

* Set `Content-Type` as `application/json` to JSON endpoints (#1596)

* Set json content-type to JSON endpoints

* Update CHANGELOG

(cherry picked from commit cff7cb44c0d204fa1de3f7fe540041c60361ce37)

* prepare for 0.24.1 release

Co-authored-by: Paschalis Tsilias <tpaschalis@users.noreply.github.com>
Co-authored-by: Robert Lankford <robert.lankford@grafana.com>
Co-authored-by: Marc Tudurí <marctc@protonmail.com>
27 files changed
tree: 9ce1832df6870baece6baaf6a4f628b23bf2f96d
  1. .drone/
  2. .github/
  3. build-image/
  4. cmd/
  5. docs/
  6. example/
  7. packaging/
  8. pkg/
  9. production/
  10. tools/
  11. .gitignore
  12. .golangci.yml
  13. ADOPTERS.md
  14. CHANGELOG.md
  15. CODE_OF_CONDUCT.md
  16. CODEOWNERS
  17. go.mod
  18. go.sum
  19. GOVERNANCE.md
  20. LICENSE
  21. MAINTAINERS.md
  22. Makefile
  23. README.md
  24. SECURITY.md
README.md

Grafana Agent is a 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.

Getting Started

When using Kubernetes this link offers the best guide.

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 keep the experimental changes to a minimum and upstream changes as soon as possible.

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

Getting Help

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

Contributing

Any contributions are welcome and details can be found in our contributors guide.