Skip to content

Commit

Permalink
Continue updates to the Alloy doc set (#110)
Browse files Browse the repository at this point in the history
* Small adjustemnts to topic flow

* Update the landing page to use cards style

* Regenerate the versions docs
  • Loading branch information
clayton-cornell authored Apr 4, 2024
1 parent 9b878da commit cea1349
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 22 deletions.
49 changes: 42 additions & 7 deletions docs/sources/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,48 @@ cascade:
OTEL_VERSION: v0.87.0
FULL_PRODUCT_NAME: Grafana Alloy
PRODUCT_NAME: Alloy
hero:
title: Grafana Alloy
level: 1
image: /media/docs/alloy/alloy_icon.png
width: 110
height: 110
description: >-
Grafana Alloy is a vendor-neutral distribution of the OpenTelemetry (OTel) Collector. Alloy uniquely combines the very best OSS observability signals in the community.
cards:
title_class: pt-0 lh-1
items:
- title: Install Alloy
href: ./get-started/install/
description: Learn how to install and uninstall Alloy on Docker, Kubernetes, Linux, macOS, or Windows.
- title: Run Alloy
href: ./get-started/run/
description: Learn how to start, restart, and stop Alloy after you have installed it.
- title: Configure Alloy
href: ./tasks/configure/
description: Learn how to configure Alloy on Kubernetes, Linux, macOS, or Windows.
- title: Migrate to Alloy
href: ./tasks/migrate/
description: Learn how to migrate to Alloy from Grafana Agent Operator, Prometheus, Promtail, Grafana Agent Static, or Grafana Agent Flow.
- title: Concepts
href: ./concepts/
description: Learn about components, modules, clustering, and the Alloy configuration syntax.
- title: Reference
href: ./reference/
description: Read the reference documentation about the command line tools, configuration blocks, components, and standard library.
---

# {{% param "FULL_PRODUCT_NAME" %}}
{{< docs/hero-simple key="hero" >}}

{{< param "FULL_PRODUCT_NAME" >}} is a vendor-neutral distribution of the [OpenTelemetry][] (OTel) Collector.
{{< param "PRODUCT_NAME" >}} uniquely combines the very best OSS observability signals in the community.
It offers native pipelines for OTel, [Prometheus][], [Pyroscope][], [Loki][], and many other metrics, logs, traces, and profile tools.
In additon, you can use {{< param "PRODUCT_NAME" >}} pipelines to do other tasks such as configure alert rules in Loki and Mimir.
---

# Overview

{{< param "PRODUCT_NAME" >}} offers native pipelines for OTel, [Prometheus][], [Pyroscope][], [Loki][], and many other metrics, logs, traces, and profile tools.
In addition, you can use {{< param "PRODUCT_NAME" >}} pipelines to do different tasks, such as configure alert rules in Loki and Mimir.
{{< param "PRODUCT_NAME" >}} is fully compatible with the OTel Collector, Prometheus Agent, and Promtail.
You can use {{< param "PRODUCT_NAME" >}} as an alternative to either of these solutions or combined into a hybrid system of multiple collectors and agents.
You can deploy {{< param "PRODUCT_NAME" >}} anywhere within your IT infrastructure and you can pair it with your Grafana LGTM stack, a telemetry backend from Grafana Cloud, or any other compatible backend from any other vendor.
You can use {{< param "PRODUCT_NAME" >}} as an alternative to either of these solutions or combine it into a hybrid system of multiple collectors and agents.
You can deploy {{< param "PRODUCT_NAME" >}} anywhere within your IT infrastructure and pair it with your Grafana LGTM stack, a telemetry backend from Grafana Cloud, or any other compatible backend from any other vendor.
{{< param "PRODUCT_NAME" >}} is flexible, and you can easily configure it to fit your needs in on-prem, cloud-only, or a mix of both.

## What can {{% param "PRODUCT_NAME" %}} do?
Expand All @@ -36,6 +67,10 @@ Some of these features include:
* **Security:** {{< param "PRODUCT_NAME" >}} helps you manage authentication credentials and connect to HashiCorp Vaults or Kubernetes clusters to retrieve secrets.
* **Debugging utilities:** {{< param "PRODUCT_NAME" >}} provides troubleshooting support and an embedded [user interface][UI] to help you identify and resolve configuration problems.

## Explore

{{< card-grid key="cards" type="simple" >}}

[OpenTelemetry]: https://opentelemetry.io/ecosystem/distributions/
[Prometheus]: https://prometheus.io/
[Loki]: https://grafana.com/docs/loki/
Expand Down
49 changes: 42 additions & 7 deletions docs/sources/_index.md.t
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,48 @@ cascade:
OTEL_VERSION: v0.87.0
FULL_PRODUCT_NAME: Grafana Alloy
PRODUCT_NAME: Alloy
hero:
title: Grafana Alloy
level: 1
image: /media/docs/alloy/alloy_icon.png
width: 110
height: 110
description: >-
Grafana Alloy is a vendor-neutral distribution of the OpenTelemetry (OTel) Collector. Alloy uniquely combines the very best OSS observability signals in the community.
cards:
title_class: pt-0 lh-1
items:
- title: Install Alloy
href: ./get-started/install/
description: Learn how to install and uninstall Alloy on Docker, Kubernetes, Linux, macOS, or Windows.
- title: Run Alloy
href: ./get-started/run/
description: Learn how to start, restart, and stop Alloy after you have installed it.
- title: Configure Alloy
href: ./tasks/configure/
description: Learn how to configure Alloy on Kubernetes, Linux, macOS, or Windows.
- title: Migrate to Alloy
href: ./tasks/migrate/
description: Learn how to migrate to Alloy from Grafana Agent Operator, Prometheus, Promtail, Grafana Agent Static, or Grafana Agent Flow.
- title: Concepts
href: ./concepts/
description: Learn about components, modules, clustering, and the Alloy configuration syntax.
- title: Reference
href: ./reference/
description: Read the reference documentation about the command line tools, configuration blocks, components, and standard library.
---

# {{% param "FULL_PRODUCT_NAME" %}}
{{< docs/hero-simple key="hero" >}}

{{< param "FULL_PRODUCT_NAME" >}} is a vendor-neutral distribution of the [OpenTelemetry][] (OTel) Collector.
{{< param "PRODUCT_NAME" >}} uniquely combines the very best OSS observability signals in the community.
It offers native pipelines for OTel, [Prometheus][], [Pyroscope][], [Loki][], and many other metrics, logs, traces, and profile tools.
In additon, you can use {{< param "PRODUCT_NAME" >}} pipelines to do other tasks such as configure alert rules in Loki and Mimir.
---

# Overview

{{< param "PRODUCT_NAME" >}} offers native pipelines for OTel, [Prometheus][], [Pyroscope][], [Loki][], and many other metrics, logs, traces, and profile tools.
In addition, you can use {{< param "PRODUCT_NAME" >}} pipelines to do different tasks, such as configure alert rules in Loki and Mimir.
{{< param "PRODUCT_NAME" >}} is fully compatible with the OTel Collector, Prometheus Agent, and Promtail.
You can use {{< param "PRODUCT_NAME" >}} as an alternative to either of these solutions or combined into a hybrid system of multiple collectors and agents.
You can deploy {{< param "PRODUCT_NAME" >}} anywhere within your IT infrastructure and you can pair it with your Grafana LGTM stack, a telemetry backend from Grafana Cloud, or any other compatible backend from any other vendor.
You can use {{< param "PRODUCT_NAME" >}} as an alternative to either of these solutions or combine it into a hybrid system of multiple collectors and agents.
You can deploy {{< param "PRODUCT_NAME" >}} anywhere within your IT infrastructure and pair it with your Grafana LGTM stack, a telemetry backend from Grafana Cloud, or any other compatible backend from any other vendor.
{{< param "PRODUCT_NAME" >}} is flexible, and you can easily configure it to fit your needs in on-prem, cloud-only, or a mix of both.

## What can {{% param "PRODUCT_NAME" %}} do?
Expand All @@ -36,6 +67,10 @@ Some of these features include:
* **Security:** {{< param "PRODUCT_NAME" >}} helps you manage authentication credentials and connect to HashiCorp Vaults or Kubernetes clusters to retrieve secrets.
* **Debugging utilities:** {{< param "PRODUCT_NAME" >}} provides troubleshooting support and an embedded [user interface][UI] to help you identify and resolve configuration problems.
## Explore
{{< card-grid key="cards" type="simple" >}}
[OpenTelemetry]: https://opentelemetry.io/ecosystem/distributions/
[Prometheus]: https://prometheus.io/
[Loki]: https://grafana.com/docs/loki/
Expand Down
16 changes: 8 additions & 8 deletions docs/sources/tutorials/processing-logs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,18 +135,18 @@ loki.write "local_loki" {
}
```

{{< collapse title="How the components work" >}}
{{< collapse title="How the stages work" >}}

Many of the `stage.*` blocks in `loki.process` act on reading or writing a shared map of values extracted from the logs.
You can think of this extracted map as a hashmap or table that each stage has access to, and it is referred to as the "extracted map" from here on.
You can think of this extracted map as a hashmap or table that each stage has access to, and it's referred to as the "extracted map" from here on.
In subsequent stages, you can use the extracted map to filter logs, add or remove labels, or even modify the log line.

{{< admonition type="note" >}}
`stage.*` blocks are executed in the order they appear in the component, top down.
{{< /admonition >}}

Let's use an example log line to illustrate this, then go stage by stage, showing the contents of the extracted map.
Here is our example log line:
Here is the example log line:

```json
{
Expand All @@ -173,7 +173,7 @@ stage.json {
This stage parses the log line as JSON, extracts two values from it, `log` and `timestamp`, and puts them into the extracted map with keys `log` and `ts`, respectively.

{{< admonition type="note" >}}
Supplying an empty string is shorthand for using the same key as in the input log line (so `log = ""` is the same as `log = "log"`).
Supplying an empty string is shorthand for using the same key as in the input log line, so `log = ""` is the same as `log = "log"`.
The _keys_ of the `expressions` object end up as the keys in the extracted map, and the _values_ are used as keys to look up in the parsed log line.
{{< /admonition >}}

Expand Down Expand Up @@ -310,9 +310,9 @@ stage.labels {
}
```

This stage adds a label to the log using the same shorthand as above (so this is equivalent to using `values = { level = "level" }`).
This stage adds a label with key `level` and the value of `level` in the extracted map to the log (`"info"` from our example log line).
This stage does not modify the extracted map.
This stage adds a label to the log using the same shorthand as before, so this is equivalent to using `values = { level = "level" }`.
This stage adds a label with key `level` and the value of `level` in the extracted map to the log (`"info"` from the example log line).
This stage doesn't modify the extracted map.

#### Stage 6

Expand All @@ -322,7 +322,7 @@ stage.output {
}
```

This stage uses the `log_line` value in the extracted map to set the actual log line that is forwarded to Loki.
This stage uses the `log_line` value in the extracted map to set the actual log line that's forwarded to Loki.
Rather than sending the entire JSON blob to Loki, you are only sending `original_log_line["log"]["message"]`, along with some labels that you attached.

This stage doesn't modify the extracted map.
Expand Down

0 comments on commit cea1349

Please sign in to comment.