Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a table to the flow description showing benefits and strengths of flow #5732

Merged
merged 13 commits into from
Nov 16, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 71 additions & 34 deletions docs/sources/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/<AGENT VERSION>/static"
[Static mode]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/send-data/agent/static"

[Static mode Kubernetes operator]: "/docs/agent/ -> /docs/agent/<AGENT VERSION>/operator"
[Static mode Kubernetes operator]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/send-data/agent/operator"

[Flow mode]: "/docs/agent/ -> /docs/agent/<AGENT VERSION>/flow"
[Flow mode]: "/docs/grafana-cloud/ -> /docs/agent/<AGENT VERSION>/flow"
[Prometheus]: "/docs/agent/ -> /docs/agent/<AGENT_VERSION>/flow/getting-started/collect-prometheus-metrics.md"
[Prometheus]: "/docs/grafana-cloud/ -> /docs/agent/<AGENT_VERSION>/flow/getting-started/collect-prometheus-metrics.md"
[OTel]: "/docs/agent/ -> /docs/agent/<AGENT_VERSION>/flow/getting-started/collect-opentelemetry-data.md"
[OTel]: "/docs/grafana-cloud/ -> /docs/agent/<AGENT_VERSION>/flow/getting-started/collect-opentelemetry-data.md"
[Loki]: "/docs/agent/ -> /docs/agent/<AGENT_VERSION>/flow/getting-started/migrating-from-promtail.md"
[Loki]: "/docs/grafana-cloud/ -> /docs/agent/<AGENT_VERSION>/flow/getting-started/migrating-from-promtail.md"
[clustering]: "/docs/agent/ -> /docs/agent/<AGENT_VERSION>/flow/concepts/clustering/_index.md"
[clustering]: "/docs/grafana-cloud/ -> /docs/agent/<AGENT_VERSION>/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/<AGENT_VERSION>/flow/reference/components/remote.vault.md"
[vault]: "/docs/grafana-cloud/ -> /docs/agent/<AGENT_VERSION>/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 |
Expand All @@ -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:

Expand All @@ -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.
clayton-cornell marked this conversation as resolved.
Show resolved Hide resolved

You should run the Static mode Kubernetes operator when:

Expand All @@ -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

Expand Down