From 7e33d9c176a300d35db8bb0c7c1d4311c9666098 Mon Sep 17 00:00:00 2001 From: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com> Date: Thu, 16 Nov 2023 09:13:57 -0800 Subject: [PATCH] Add a table to the flow description showing benefits and strengths of flow (#5732) * First draft adding config table * Rephrase soem parts and move tables * Update docs/sources/about.md Co-authored-by: Jack Baldry * Cleanup some semantic linebreaks * Reorg tabels, add note to operator * Fix broken link --------- Co-authored-by: Jack Baldry --- docs/sources/about.md | 105 ++++++++++++++++++++++++++++-------------- 1 file changed, 71 insertions(+), 34 deletions(-) diff --git a/docs/sources/about.md b/docs/sources/about.md index 3ebae044e00b..f7767e04fa30 100644 --- a/docs/sources/about.md +++ b/docs/sources/about.md @@ -14,27 +14,40 @@ weight: 100 # Introduction to Grafana Agent -Grafana Agent is a vendor-neutral, batteries-included telemetry collector. It -is designed to be flexible, performant, and compatible with multiple ecosystems -such as Prometheus and OpenTelemetry. +Grafana Agent is a flexible, high performance, vendor-neutral telemetry collector. It's fully compatible with the most popular open source observability standards such as OpenTelemetry (OTel) and Prometheus. Grafana Agent is available in three different variants: -- [Static mode][]: The default, original variant of Grafana Agent. -- [Static mode Kubernetes operator][]: Variant which manages agents running in Static mode. -- [Flow mode][]: The newer, more flexible re-imagining variant of Grafana Agent. +- [Static mode][]: The original Grafana Agent. +- [Static mode Kubernetes operator][]: The Kubernetes operator for Static mode. +- [Flow mode][]: The new, component-based Grafana Agent. {{% docs/reference %}} [Static mode]: "/docs/agent/ -> /docs/agent//static" [Static mode]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/send-data/agent/static" - [Static mode Kubernetes operator]: "/docs/agent/ -> /docs/agent//operator" [Static mode Kubernetes operator]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/send-data/agent/operator" - [Flow mode]: "/docs/agent/ -> /docs/agent//flow" [Flow mode]: "/docs/grafana-cloud/ -> /docs/agent//flow" +[Prometheus]: "/docs/agent/ -> /docs/agent//flow/getting-started/collect-prometheus-metrics.md" +[Prometheus]: "/docs/grafana-cloud/ -> /docs/agent//flow/getting-started/collect-prometheus-metrics.md" +[OTel]: "/docs/agent/ -> /docs/agent//flow/getting-started/collect-opentelemetry-data.md" +[OTel]: "/docs/grafana-cloud/ -> /docs/agent//flow/getting-started/collect-opentelemetry-data.md" +[Loki]: "/docs/agent/ -> /docs/agent//flow/getting-started/migrating-from-promtail.md" +[Loki]: "/docs/grafana-cloud/ -> /docs/agent//flow/getting-started/migrating-from-promtail.md" +[clustering]: "/docs/agent/ -> /docs/agent//flow/concepts/clustering/_index.md" +[clustering]: "/docs/grafana-cloud/ -> /docs/agent//flow/concepts/clustering/_index.md" +[rules]: "/docs/agent/ -> /docs/agent/latest/flow/reference/components/mimir.rules.kubernetes.md" +[rules]: "/docs/grafana-cloud/ -> /docs/agent/latest/flow/reference/components/mimir.rules.kubernetes.md" +[vault]: "/docs/agent/ -> /docs/agent//flow/reference/components/remote.vault.md" +[vault]: "/docs/grafana-cloud/ -> /docs/agent//flow/reference/components/remote.vault.md" {{% /docs/reference %}} +[Pyroscope]: https://grafana.com/docs/pyroscope/latest/configure-client/grafana-agent/go_pull +[helm chart]: https://grafana.com/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/config-k8s-helmchart +[sla]: https://grafana.com/legal/grafana-cloud-sla +[observability]: https://grafana.com/docs/grafana-cloud/monitor-applications/application-observability/setup#send-telemetry + ## Stability | Project | Stability | @@ -45,13 +58,44 @@ Grafana Agent is available in three different variants: ## Choose which variant of Grafana Agent to run -> **NOTE**: You do not have to pick just one variant; it is possible to +> **NOTE**: You don't have to pick just one variant; it's possible to > mix-and-match installations of Grafana Agent. +### Compare variants + +Each variant of Grafana Agent provides a different level of functionality. The following tables compare Grafana Agent Flow mode with Static mode, Operator, OpenTelemetry, and Prometheus. + +#### Core telemetry + +| | Grafana Agent Flow mode | Grafana Agent Static mode | Grafana Agent Operator | OpenTelemetry Collector | Prometheus Agent mode | +|--------------|--------------------------|---------------------------|------------------------|-------------------------|-----------------------| +| **Metrics** | [Prometheus][], [OTel][] | Prometheus | Prometheus | OTel | Prometheus | +| **Logs** | [Loki][], [OTel][] | Loki | Loki | OTel | No | +| **Traces** | [OTel][] | OTel | OTel | OTel | No | +| **Profiles** | [Pyroscope][] | No | No | Planned | No | + +#### **OSS features** + +| | Grafana Agent Flow mode | Grafana Agent Static mode | Grafana Agent Operator | OpenTelemetry Collector | Prometheus Agent mode | +|--------------------------|-------------------------|---------------------------|------------------------|-------------------------|-----------------------| +| **Kubernetes native** | [Yes][helm chart] | No | Yes | Yes | No | +| **Clustering** | [Yes][clustering] | No | No | No | No | +| **Prometheus rules** | [Yes][rules] | No | No | No | No | +| **Native Vault support** | [Yes][vault] | No | No | No | No | + +#### Grafana Cloud solutions + +| | Grafana Agent Flow mode | Grafana Agent Static mode | Grafana Agent Operator | OpenTelemetry Collector | Prometheus Agent mode | +|-------------------------------|-------------------------|---------------------------|------------------------|-------------------------|-----------------------| +| **Official vendor support** | [Yes][sla] | Yes | Yes | No | No | +| **Cloud integrations** | Some | Yes | Some | No | No | +| **Kubernetes monitoring** | [Yes][helm chart] | Yes, custom | Yes | No | Yes, custom | +| **Application observability** | [Yes][observability] | No | No | Yes | No | + ### Static mode -[Static mode][] is the original variant of Grafana Agent, first introduced on -March 3, 2020. Static mode is the most mature variant of Grafana Agent. +[Static mode][] is the original variant of Grafana Agent, introduced on March 3, 2020. +Static mode is the most mature variant of Grafana Agent. You should run Static mode when: @@ -61,12 +105,15 @@ You should run Static mode when: ### Static mode Kubernetes operator -The [Static mode Kubernetes operator][] is a variant of Grafana Agent first -introduced on June 17, 2021. It is currently in beta. +{{% admonition type="note" %}} +Grafana Agent version 0.37 and newer provides Prometheus Operator compatibility in Flow mode. +You should use Grafana Agent Flow mode for all new Grafana Agent deployments. +{{% /admonition %}} -The Static mode Kubernetes operator was introduced for compatibility with -Prometheus Operator, allowing static mode to support resources from Prometheus -Operator, such as ServiceMonitors, PodMonitors, and Probes. +The [Static mode Kubernetes operator][] is a variant of Grafana Agent introduced on June 17, 2021. It's currently in beta. + +The Static mode Kubernetes operator provides compatibility with Prometheus Operator, +allowing static mode to support resources from Prometheus Operator, such as ServiceMonitors, PodMonitors, and Probes. You should run the Static mode Kubernetes operator when: @@ -76,34 +123,24 @@ You should run the Static mode Kubernetes operator when: ### Flow mode -[Flow mode][] is a stable variant of Grafana Agent first introduced on -September 29, 2022. - -Flow mode was introduced as a re-imagining of Grafana Agent with a focus on -vendor neutrality, ease-of-use, improved debuggability, and ability to adapt to -the needs of power users by adopting a configuration-as-code model. +[Flow mode][] is a stable variant of Grafana Agent, introduced on September 29, 2022. -Flow mode is considered to be the future of the Grafana Agent project. +Grafana Agent Flow mode focuses on vendor neutrality, ease-of-use, +improved debugging, and ability to adapt to the needs of power users by adopting a configuration-as-code model. You should run Flow mode when: * You need functionality unique to Flow mode: - * **Debuggability**: You need to more easily debug configuration issues using - a UI. - - * **Full OpenTelemetry support**: Support for collecting OpenTelemetry - metrics, logs, and traces. + * **Improved debugging**: You need to more easily debug configuration issues using a UI. - * **PrometheusRule support**: Support for the PrometheusRule resource from - the Prometheus Operator project for configuring Grafana Mimir. + * **Full OpenTelemetry support**: Support for collecting OpenTelemetry metrics, logs, and traces. - * **Ecosystem transformation**: You need to be able to convert Prometheus and - Loki pipelines to and from OpenTelmetry Collector pipelines. + * **PrometheusRule support**: Support for the PrometheusRule resource from the Prometheus Operator project for configuring Grafana Mimir. - * **Grafana Pyroscope support**: Support for collecting profiles for Grafana - Pyroscope. + * **Ecosystem transformation**: You need to be able to convert Prometheus and Loki pipelines to and from OpenTelmetry Collector pipelines. + * **Grafana Pyroscope support**: Support for collecting profiles for Grafana Pyroscope. ### BoringCrypto