diff --git a/.github/ISSUE_TEMPLATE/docs.yaml b/.github/ISSUE_TEMPLATE/docs.yaml new file mode 100644 index 0000000000..fbd229840c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/docs.yaml @@ -0,0 +1,20 @@ +name: Documentation feedback +description: Give feedback on the Grafana Alloy documentation. +title: "Docs feedback: " +labels: ["type/docs"] +body: + - type: input + id: url + attributes: + label: URL + description: The URL of the page you're providing feedback on. + placeholder: https://grafana.com/docs/alloy/latest/ + validations: + required: true + - type: textarea + id: feedback + attributes: + label: Feedback + description: What feedback do you have? + validations: + required: true diff --git a/.github/workflows/helm-release.yml b/.github/workflows/helm-release.yml index f973d28b3a..d694267f96 100644 --- a/.github/workflows/helm-release.yml +++ b/.github/workflows/helm-release.yml @@ -133,7 +133,7 @@ jobs: # The tag name in grafana/helm-charts is -, while the # tag name for grafana/alloy is helm-chart/. - name: Make github release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: name: ${{ steps.parse-chart.outputs.packagename }} repository: grafana/helm-charts diff --git a/CHANGELOG.md b/CHANGELOG.md index f1982e7728..1b7c5de0b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,14 +7,32 @@ This document contains a historical list of changes between releases. Only changes that impact end-user behavior are listed; changes to documentation or internal API changes are not present. -Unreleased ----------- +Main (unreleased) +----------------- + +### Enhancements + +- Update `prometheus.exporter.kafka` with the following functionalities (@wildum): + * GSSAPI config + * enable/disable PA_FX_FAST + * set a TLS server name + * show the offset/lag for all consumer group or only the connected ones + * set the minimum number of topics to monitor + * enable/disable auto-creation of requested topics if they don't already exist + * regex to exclude topics / groups + * added metric kafka_broker_info + +- In `prometheus.exporter.kafka`, the interpolation table used to compute estimated lag metrics is now pruned + on `metadata_refresh_interval` instead of `prune_interval_seconds`. (@wildum) ### Bugfixes +- Fixed issue with defaults for Beyla component not being applied correctly. (marctc) + - Fix an issue on Windows where uninstalling Alloy did not remove it from the Add/Remove programs list. (@rfratto) + v1.0.0 (2024-04-09) ------------------- diff --git a/docs/sources/_index.md b/docs/sources/_index.md index b5f20c184b..56e9ed5c04 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -31,6 +31,12 @@ cards: - 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: Collect OpenTelemetry data + href: ./tasks/collect-opentelemetry-data/ + description: You can configure Alloy to collect OpenTelemetry-compatible data and forward it to any OpenTelemetry-compatible endpoint. Learn how to configure OpenTelemetry data delivery, configure batching, and receive OpenTelemetry data over OTLP. + - title: Collect and forward Prometheus metrics + href: ./tasks/collect-prometheus-metrics/ + description: You can configure Alloy to collect Prometheus metrics and forward them to any Prometheus-compatible database. Learn how to configure metrics delivery and collect metrics from Kubernetes Pods. - title: Concepts href: ./concepts/ description: Learn about components, modules, clustering, and the Alloy configuration syntax. @@ -45,37 +51,30 @@ cards: # 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. +{{< 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 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. +{{< admonition type="tip" >}} +{{< param "PRODUCT_NAME" >}} uses the same components, code, and concepts that were first introduced in Grafana Agent Flow. +{{< /admonition >}} + ## What can {{% param "PRODUCT_NAME" %}} do? {{< param "PRODUCT_NAME" >}} is more than just observability signals like metrics, logs, and traces. It provides many features that help you quickly find and process your data in complex environments. -Some of these features include: - -* **Custom components:** You can use {{< param "PRODUCT_NAME" >}} to create and share custom components. - Custom components combine a pipeline of existing components into a single, easy-to-understand component that's just a few lines long. - You can use pre-built custom components from the community, ones packaged by Grafana, or create your own. -* **GitOps compatibility:** {{< param "PRODUCT_NAME" >}} uses frameworks to pull configurations from Git, S3, HTTP endpoints, and just about any other source. -* **Clustering support:** {{< param "PRODUCT_NAME" >}} has native clustering support. - Clustering helps distribute the workload and ensures you have high availability. - You can quickly create horizontally scalable deployments with minimal resource and operational overhead. -* **Security:** {{< param "PRODUCT_NAME" >}} helps you manage authentication credentials and connect to HashiCorp Vault servers or Kubernetes clusters to retrieve Kubernetes secrets. -* **Debugging utilities:** {{< param "PRODUCT_NAME" >}} provides debugging tools such as an embedded [user interface][UI] to help you identify and resolve configuration problems. +Some of these features include custom components, GitOps compatibility, clustering support, security, and debugging utilities. Refer to the {{< param "PRODUCT_NAME" >}} [Introduction] for more information on these and other key features. ## Explore {{< card-grid key="cards" type="simple" >}} -[OpenTelemetry]: https://opentelemetry.io/ecosystem/distributions/ +[OTel]: https://opentelemetry.io/ecosystem/distributions/ [Prometheus]: https://prometheus.io/ +[Pyroscope]: https://grafana.com/docs/pyroscope/ [Loki]: https://grafana.com/docs/loki/ -[Grafana]: https://grafana.com/docs/grafana/ -[Tempo]: https://grafana.com/docs/tempo/ [Mimir]: https://grafana.com/docs/mimir/ -[Pyroscope]: https://grafana.com/docs/pyroscope/ -[UI]: ./tasks/debug/#alloy-ui +[Promtail]: https://grafana.com/docs/loki/latest/send-data/promtail/ +[Introduction]: ./introduction/ diff --git a/docs/sources/_index.md.t b/docs/sources/_index.md.t index 1dd7bd6117..53832e8f41 100644 --- a/docs/sources/_index.md.t +++ b/docs/sources/_index.md.t @@ -31,6 +31,12 @@ cards: - 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: Collect OpenTelemetry data + href: ./tasks/collect-opentelemetry-data/ + description: You can configure Alloy to collect OpenTelemetry-compatible data and forward it to any OpenTelemetry-compatible endpoint. Learn how to configure OpenTelemetry data delivery, configure batching, and receive OpenTelemetry data over OTLP. + - title: Collect and forward Prometheus metrics + href: ./tasks/collect-prometheus-metrics/ + description: You can configure Alloy to collect Prometheus metrics and forward them to any Prometheus-compatible database. Learn how to configure metrics delivery and collect metrics from Kubernetes Pods. - title: Concepts href: ./concepts/ description: Learn about components, modules, clustering, and the Alloy configuration syntax. @@ -45,37 +51,30 @@ cards: # 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. +{{< 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 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. +{{< admonition type="tip" >}} +{{< param "PRODUCT_NAME" >}} uses the same components, code, and concepts that were first introduced in Grafana Agent Flow. +{{< /admonition >}} + ## What can {{% param "PRODUCT_NAME" %}} do? {{< param "PRODUCT_NAME" >}} is more than just observability signals like metrics, logs, and traces. It provides many features that help you quickly find and process your data in complex environments. -Some of these features include: - -* **Custom components:** You can use {{< param "PRODUCT_NAME" >}} to create and share custom components. - Custom components combine a pipeline of existing components into a single, easy-to-understand component that's just a few lines long. - You can use pre-built custom components from the community, ones packaged by Grafana, or create your own. -* **GitOps compatibility:** {{< param "PRODUCT_NAME" >}} uses frameworks to pull configurations from Git, S3, HTTP endpoints, and just about any other source. -* **Clustering support:** {{< param "PRODUCT_NAME" >}} has native clustering support. - Clustering helps distribute the workload and ensures you have high availability. - You can quickly create horizontally scalable deployments with minimal resource and operational overhead. -* **Security:** {{< param "PRODUCT_NAME" >}} helps you manage authentication credentials and connect to HashiCorp Vault servers or Kubernetes clusters to retrieve Kubernetes secrets. -* **Debugging utilities:** {{< param "PRODUCT_NAME" >}} provides debugging tools such as an embedded [user interface][UI] to help you identify and resolve configuration problems. +Some of these features include custom components, GitOps compatibility, clustering support, security, and debugging utilities. Refer to the {{< param "PRODUCT_NAME" >}} [Introduction] for more information on these and other key features. ## Explore {{< card-grid key="cards" type="simple" >}} -[OpenTelemetry]: https://opentelemetry.io/ecosystem/distributions/ +[OTel]: https://opentelemetry.io/ecosystem/distributions/ [Prometheus]: https://prometheus.io/ +[Pyroscope]: https://grafana.com/docs/pyroscope/ [Loki]: https://grafana.com/docs/loki/ -[Grafana]: https://grafana.com/docs/grafana/ -[Tempo]: https://grafana.com/docs/tempo/ [Mimir]: https://grafana.com/docs/mimir/ -[Pyroscope]: https://grafana.com/docs/pyroscope/ -[UI]: ./tasks/debug/#alloy-ui +[Promtail]: https://grafana.com/docs/loki/latest/send-data/promtail/ +[Introduction]: ./introduction/ diff --git a/docs/sources/assets/alloy_icon_orange.svg b/docs/sources/assets/alloy_icon_orange.svg new file mode 100644 index 0000000000..bea56291ce --- /dev/null +++ b/docs/sources/assets/alloy_icon_orange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/sources/concepts/custom_components.md b/docs/sources/concepts/custom_components.md index f97925fbd0..fed3d76693 100644 --- a/docs/sources/concepts/custom_components.md +++ b/docs/sources/concepts/custom_components.md @@ -1,5 +1,5 @@ --- -canonical: https://grafana.com/docs/alloy/latest/concepts/custom-components/ +canonical: https://grafana.com/docs/alloy/latest/concepts/custom_components/ description: Learn about custom components title: Custom components weight: 300 diff --git a/docs/sources/get-started/install/_index.md b/docs/sources/get-started/install/_index.md index 0f605d4b95..a1794fe682 100644 --- a/docs/sources/get-started/install/_index.md +++ b/docs/sources/get-started/install/_index.md @@ -1,4 +1,6 @@ --- +aliases: +- /docs/alloy/latest/tasks/get-started/install/ canonical: https://grafana.com/docs/alloy/latest/get-started/install/ description: Learn how to install Grafana Alloy menuTitle: Install diff --git a/docs/sources/get-started/install/ansible.md b/docs/sources/get-started/install/ansible.md index 4da079679c..3f6f50ccf9 100644 --- a/docs/sources/get-started/install/ansible.md +++ b/docs/sources/get-started/install/ansible.md @@ -11,7 +11,7 @@ noindex: true # Install or uninstall {{% param "FULL_PRODUCT_NAME" %}} using Ansible -You can use Ansible to install and manage {{< param "PRODUCT_NAME" >}} on Linux hosts. +You can use [Grafana Ansible Collection](https://github.com/grafana/grafana-ansible-collection) to install and manage {{< param "PRODUCT_NAME" >}} on Linux hosts. ## Before you begin @@ -25,24 +25,31 @@ To add {{% param "PRODUCT_NAME" %}} to a host: 1. Create a file named `alloy.yml` and add the following: ```yaml - - name: Install Grafana Alloy + - name: Install Alloy hosts: all become: true + tasks: - - name: Install Grafana Alloy + - name: Install Alloy ansible.builtin.include_role: name: grafana.grafana.alloy vars: - # Destination file name - grafana_alloy_config_filename: config.alloy - # Local file to copy - grafana_alloy_provisioned_config_file: "" - grafana_alloy_flags_extra: - server.http.listen-addr: '0.0.0.0:12345' + config: | + prometheus.scrape "default" { + targets = [{"__address__" = "localhost:12345"}] + forward_to = [prometheus.remote_write.prom.receiver] + } + prometheus.remote_write "prom" { + endpoint { + url = "YOUR_PROMETHEUS_PUSH_ENDPOINT" + } + } ``` - Replace the following: - - _``_: The path to the {{< param "PRODUCT_NAME" >}} configuration file on the Ansible Controller (Localhost). + The above snippet has a sample configuration to collect and send Alloy metrics to Prometheus + + Replace the following: + - _`YOUR_PROMETHEUS_PUSH_ENDPOINT`_: With the Remote write endpoint of your Prometheus Instance. 1. Run the Ansible playbook. Open a terminal window and run the following command from the Ansible playbook directory. @@ -76,5 +83,5 @@ Main PID: 3176 (alloy-linux-amd) - [Configure {{< param "PRODUCT_NAME" >}}][Configure] -[Ansible]: https://www.ansible.com/ +[Grafana Ansible Collection]: https://github.com/grafana/grafana-ansible-collection [Configure]: ../../../tasks/configure/configure-linux/ diff --git a/docs/sources/get-started/install/linux.md b/docs/sources/get-started/install/linux.md index afb96d5e0e..1cf00de945 100644 --- a/docs/sources/get-started/install/linux.md +++ b/docs/sources/get-started/install/linux.md @@ -10,6 +10,15 @@ weight: 300 You can install {{< param "PRODUCT_NAME" >}} as a systemd service on Linux. +## Before you begin + +Some Debian-based cloud Virtual Machines don't have GPG installed by default. +To install GPG in your Linux Virtual Machine, run the following command in a terminal window. + +```shell +sudo apt install gpg +``` + ## Install To install {{< param "PRODUCT_NAME" >}} on Linux, run the following commands in a terminal window. diff --git a/docs/sources/reference/cli/run.md b/docs/sources/reference/cli/run.md index 0fc7cf1dcf..3c09772c6d 100644 --- a/docs/sources/reference/cli/run.md +++ b/docs/sources/reference/cli/run.md @@ -171,4 +171,4 @@ Refer to [alloy convert][] for more details on how `extra-args` work. [data collection]: ../../../data-collection/ [components]: ../../concepts/components/ [component controller]: ../../../concepts/component_controller/ -[UI]: ../../tasks/debug/#clustering-page +[UI]: ../../../tasks/debug/#clustering-page diff --git a/docs/sources/reference/cli/tools.md b/docs/sources/reference/cli/tools.md index 46638810cc..1fd402af18 100644 --- a/docs/sources/reference/cli/tools.md +++ b/docs/sources/reference/cli/tools.md @@ -1,5 +1,5 @@ --- -canonical: https://grafana.com/docs/aalloyent/latest/reference/cli/tools/ +canonical: https://grafana.com/docs/alloy/latest/reference/cli/tools/ description: Learn about the tools command menuTitle: tools title: The tools command diff --git a/docs/sources/reference/components/beyla.ebpf.md b/docs/sources/reference/components/beyla.ebpf.md index 958d66f7d2..6b38b17495 100644 --- a/docs/sources/reference/components/beyla.ebpf.md +++ b/docs/sources/reference/components/beyla.ebpf.md @@ -31,15 +31,15 @@ beyla.ebpf "