From cea1349bac85f0611cbeff0fed3a3715a090130c Mon Sep 17 00:00:00 2001 From: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com> Date: Thu, 4 Apr 2024 09:20:36 -0700 Subject: [PATCH] Continue updates to the Alloy doc set (#110) * Small adjustemnts to topic flow * Update the landing page to use cards style * Regenerate the versions docs --- docs/sources/_index.md | 49 ++++++++++++++++--- docs/sources/_index.md.t | 49 ++++++++++++++++--- .../tutorials/processing-logs/index.md | 16 +++--- 3 files changed, 92 insertions(+), 22 deletions(-) diff --git a/docs/sources/_index.md b/docs/sources/_index.md index ce268302d7..3cb95c69fc 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -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? @@ -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/ diff --git a/docs/sources/_index.md.t b/docs/sources/_index.md.t index 0a702ff4a9..bd3be5443f 100644 --- a/docs/sources/_index.md.t +++ b/docs/sources/_index.md.t @@ -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? @@ -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/ diff --git a/docs/sources/tutorials/processing-logs/index.md b/docs/sources/tutorials/processing-logs/index.md index 9ee257c2d6..bc03127f9b 100644 --- a/docs/sources/tutorials/processing-logs/index.md +++ b/docs/sources/tutorials/processing-logs/index.md @@ -135,10 +135,10 @@ 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" >}} @@ -146,7 +146,7 @@ In subsequent stages, you can use the extracted map to filter logs, add or remov {{< /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 { @@ -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 >}} @@ -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 @@ -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.