mirror of
https://github.com/grafana/tempo.git
synced 2025-03-14 03:06:42 +00:00
Rename master to main (#655)
* master => main Signed-off-by: Joe Elliott <number101010@gmail.com> * master => main Signed-off-by: Joe Elliott <number101010@gmail.com> * master => main Signed-off-by: Joe Elliott <number101010@gmail.com>
This commit is contained in:
@ -34,7 +34,7 @@ steps:
|
|||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
ref:
|
ref:
|
||||||
- refs/heads/master
|
- refs/heads/main
|
||||||
- refs/tags/**
|
- refs/tags/**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Drone is used for our building our official dockerhub images. It is broken into 3
|
Drone is used for our building our official dockerhub images. It is broken into 3
|
||||||
pipelines. Note that none of the pipelines include testing so it's important that
|
pipelines. Note that none of the pipelines include testing so it's important that
|
||||||
the codebase is otherwise tested when it begins this process. Currently we use GHA
|
the codebase is otherwise tested when it begins this process. Currently we use GHA
|
||||||
for testing on PR and only build the master branch.
|
for testing on PR and only build the main branch.
|
||||||
|
|
||||||
# Pipelines
|
# Pipelines
|
||||||
|
|
||||||
@ -31,4 +31,4 @@ to these objects: https://github.com/drone-plugins/drone-manifest/blob/master/pl
|
|||||||
|
|
||||||
If we extend this any further we should probably generate drone.yml. It has a lot of
|
If we extend this any further we should probably generate drone.yml. It has a lot of
|
||||||
repeated lines that will become difficult to maintain. Currently loki uses a jsonnet file
|
repeated lines that will become difficult to maintain. Currently loki uses a jsonnet file
|
||||||
and we should perhaps follow suit: https://github.com/grafana/loki/blob/master/.drone/drone.jsonnet
|
and we should perhaps follow suit: https://github.com/grafana/loki/blob/main/.drone/drone.jsonnet
|
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@ -1,7 +1,7 @@
|
|||||||
<!-- Thanks for sending a pull request! Before submitting:
|
<!-- Thanks for sending a pull request! Before submitting:
|
||||||
|
|
||||||
1. Read our CONTRIBUTING.md guide
|
1. Read our CONTRIBUTING.md guide
|
||||||
2. Rebase your PR if it gets out of sync with master
|
2. Rebase your PR if it gets out of sync with main
|
||||||
-->
|
-->
|
||||||
|
|
||||||
**What this PR does**:
|
**What this PR does**:
|
||||||
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -4,7 +4,7 @@ on:
|
|||||||
tags:
|
tags:
|
||||||
- '**'
|
- '**'
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
|
4
.github/workflows/website.yml
vendored
4
.github/workflows/website.yml
vendored
@ -3,7 +3,7 @@ name: publish_docs
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
paths:
|
paths:
|
||||||
- 'docs/tempo/website/**'
|
- 'docs/tempo/website/**'
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ jobs:
|
|||||||
id: publish
|
id: publish
|
||||||
with:
|
with:
|
||||||
repository: grafana/website
|
repository: grafana/website
|
||||||
branch: master
|
branch: main
|
||||||
host: github.com
|
host: github.com
|
||||||
github_pat: '${{ secrets.GH_BOT_ACCESS_TOKEN }}'
|
github_pat: '${{ secrets.GH_BOT_ACCESS_TOKEN }}'
|
||||||
source_folder: docs/tempo/website
|
source_folder: docs/tempo/website
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
## master / unreleased
|
## main / unreleased
|
||||||
|
|
||||||
* [CHANGE] Add `json` struct tags to overrides' `Limits` struct in addition to `yaml` tags. [#656](https://github.com/grafana/tempo/pull/656)
|
* [CHANGE] Add `json` struct tags to overrides' `Limits` struct in addition to `yaml` tags. [#656](https://github.com/grafana/tempo/pull/656)
|
||||||
* [CHANGE] Update to Go 1.16, latest OpenTelemetry proto definition and collector [#546](https://github.com/grafana/tempo/pull/546)
|
* [CHANGE] Update to Go 1.16, latest OpenTelemetry proto definition and collector [#546](https://github.com/grafana/tempo/pull/546)
|
||||||
|
@ -78,7 +78,7 @@ import (
|
|||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
Tempo uses a CI action to sync documentation to the [Grafana website](https://grafana.com/docs/tempo/latest). The CI is
|
Tempo uses a CI action to sync documentation to the [Grafana website](https://grafana.com/docs/tempo/latest). The CI is
|
||||||
triggered on every merge to master in the `docs` subfolder.
|
triggered on every merge to main in the `docs` subfolder.
|
||||||
|
|
||||||
To get a preview of the documentation locally, run `make docs` from the root folder of the Tempo repository. This uses
|
To get a preview of the documentation locally, run `make docs` from the root folder of the Tempo repository. This uses
|
||||||
the `grafana/docs` image which internally uses Hugo to generate the static site.
|
the `grafana/docs` image which internally uses Hugo to generate the static site.
|
||||||
|
@ -148,9 +148,9 @@ The ex-member is
|
|||||||
If needed, we reserve the right to publicly announce removal.
|
If needed, we reserve the right to publicly announce removal.
|
||||||
|
|
||||||
[announce]: https://groups.google.com/forum/#!forum/tempo-announce
|
[announce]: https://groups.google.com/forum/#!forum/tempo-announce
|
||||||
[coc]: https://github.com/grafana/tempo/blob/master/CODE_OF_CONDUCT.md
|
[coc]: https://github.com/grafana/tempo/blob/main/CODE_OF_CONDUCT.md
|
||||||
[devs]: https://groups.google.com/forum/#!forum/tempo-developers
|
[devs]: https://groups.google.com/forum/#!forum/tempo-developers
|
||||||
[maintainers]: https://github.com/grafana/tempo/blob/master/MAINTAINERS.md
|
[maintainers]: https://github.com/grafana/tempo/blob/main/MAINTAINERS.md
|
||||||
[rough]: https://tools.ietf.org/html/rfc7282
|
[rough]: https://tools.ietf.org/html/rfc7282
|
||||||
[team]: https://groups.google.com/forum/#!forum/tempo-team
|
[team]: https://groups.google.com/forum/#!forum/tempo-team
|
||||||
[users]: https://groups.google.com/forum/#!forum/tempo-users
|
[users]: https://groups.google.com/forum/#!forum/tempo-users
|
@ -54,4 +54,4 @@ tempo-cli is the place to put any utility functionality related to tempo. See [
|
|||||||
|
|
||||||
## TempoDB
|
## TempoDB
|
||||||
|
|
||||||
[TempoDB](https://github.com/grafana/tempo/tree/master/tempodb) is included in the this repository but is meant to be a stand alone key value database built on top of cloud object storage (azure/gcs/s3). It is a natively multitenant, supports a WAL and is the storage engine for Tempo.
|
[TempoDB](https://github.com/grafana/tempo/tree/main/tempodb) is included in the this repository but is meant to be a stand alone key value database built on top of cloud object storage (azure/gcs/s3). It is a natively multitenant, supports a WAL and is the storage engine for Tempo.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
This document details release procedures for Tempo. Currently it's pretty dang easy.
|
This document details release procedures for Tempo. Currently it's pretty dang easy.
|
||||||
|
|
||||||
- Push a semver tag to master. Something like:
|
- Push a semver tag to main. Something like:
|
||||||
- `git tag -a v0.3.0`
|
- `git tag -a v0.3.0`
|
||||||
- `git push origin v0.3.0`
|
- `git push origin v0.3.0`
|
||||||
- This will initiate the build process in Github Actions and Drone. The tagged docker image should
|
- This will initiate the build process in Github Actions and Drone. The tagged docker image should
|
||||||
@ -13,5 +13,5 @@ This document details release procedures for Tempo. Currently it's pretty dang
|
|||||||
- Call out contributors for their work
|
- Call out contributors for their work
|
||||||
- Cull unnecessary changes that don't impact the Tempo binary or deployment
|
- Cull unnecessary changes that don't impact the Tempo binary or deployment
|
||||||
- Call out breaking changes!
|
- Call out breaking changes!
|
||||||
- Submit a PR cleaning up the changelog and moving everything under "master/unreleased" to be under
|
- Submit a PR cleaning up the changelog and moving everything under "main/unreleased" to be under
|
||||||
the newly minted version.
|
the newly minted version.
|
@ -12,7 +12,7 @@ Team members and their access to repositories is maintained through [GitHub team
|
|||||||
|
|
||||||
## Proposing changes
|
## Proposing changes
|
||||||
|
|
||||||
Examples of proposed changes are overarching architecture, component design, and specific code or graphical elements. Proposed changes SHOULD cover the big picture and intention, but individual parts SHOULD be split into the smallest possible changes. Changes SHOULD be based on and target the master branch. Depending on size of the proposed change, each change SHOULD be discussed, in increasing order of change size and complexity:
|
Examples of proposed changes are overarching architecture, component design, and specific code or graphical elements. Proposed changes SHOULD cover the big picture and intention, but individual parts SHOULD be split into the smallest possible changes. Changes SHOULD be based on and target the main branch. Depending on size of the proposed change, each change SHOULD be discussed, in increasing order of change size and complexity:
|
||||||
- Directly in a PR (Pull Request) - this MAY be done, but SHOULD not be the common case.
|
- Directly in a PR (Pull Request) - this MAY be done, but SHOULD not be the common case.
|
||||||
- Issue
|
- Issue
|
||||||
- Developer mailing list
|
- Developer mailing list
|
||||||
@ -23,7 +23,7 @@ Significant changes MUST be discussed and agreed upon with the relevant subsyste
|
|||||||
## Merging PRs (Pull Requests)
|
## Merging PRs (Pull Requests)
|
||||||
|
|
||||||
Depending on the size and complexity of a PR, different requirements MUST be applied. Any team member contributing substantially to a PR MUST NOT count against review requirements.
|
Depending on the size and complexity of a PR, different requirements MUST be applied. Any team member contributing substantially to a PR MUST NOT count against review requirements.
|
||||||
Commits MUST be merged into master using PRs. They MUST NOT be pushed to master directly.
|
Commits MUST be merged into main using PRs. They MUST NOT be pushed to main directly.
|
||||||
- Every merge MUST be approved by at least one team member.
|
- Every merge MUST be approved by at least one team member.
|
||||||
- Non-trivial changes MUST be approved by at least
|
- Non-trivial changes MUST be approved by at least
|
||||||
- two team members, or
|
- two team members, or
|
||||||
@ -45,7 +45,7 @@ Once a PR is approved as per above, any team member MAY merge the PR.
|
|||||||
Grafana uses trunk-based development.
|
Grafana uses trunk-based development.
|
||||||
|
|
||||||
In particular, we found that the following principles match how we work:
|
In particular, we found that the following principles match how we work:
|
||||||
- Master and release branches MUST always build without failure.
|
- Main and release branches MUST always build without failure.
|
||||||
- Branches SHOULD be merged often. Larger changes SHOULD be activated with feature flags until they are ready. Long-lived development branches SHOULD be avoided.
|
- Branches SHOULD be merged often. Larger changes SHOULD be activated with feature flags until they are ready. Long-lived development branches SHOULD be avoided.
|
||||||
- Changes MAY be enabled by default once they are in a complete state
|
- Changes MAY be enabled by default once they are in a complete state
|
||||||
- Changes which span multiple PRs MUST be described in an overarching issue or Google Doc.
|
- Changes which span multiple PRs MUST be described in an overarching issue or Google Doc.
|
||||||
|
@ -4,7 +4,7 @@ title: Architecture
|
|||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
This document provides an overview of the major components that comprise Tempo. Please refer to [the examples](https://github.com/grafana/tempo/tree/master/example) to see some deployment options.
|
This document provides an overview of the major components that comprise Tempo. Please refer to [the examples](https://github.com/grafana/tempo/tree/main/example) to see some deployment options.
|
||||||
|
|
||||||
<p align="center"><img src="../tempo_arch.png" alt="Tempo Architecture"></p>
|
<p align="center"><img src="../tempo_arch.png" alt="Tempo Architecture"></p>
|
||||||
|
|
||||||
@ -55,4 +55,4 @@ Compactors stream blocks to and from the backend storage to reduce the total num
|
|||||||
|
|
||||||
## Grafana 7.4.x
|
## Grafana 7.4.x
|
||||||
|
|
||||||
When using older versions of Grafana you must also use `tempo-query` in order to visualize traces. `tempo-query` is [Jaeger Query](https://www.jaegertracing.io/docs/1.19/deployment/#query-service--ui) with a [GRPC Plugin](https://github.com/jaegertracing/jaeger/tree/master/plugin/storage/grpc) that allows it to query Tempo. See [this example](https://github.com/grafana/tempo/tree/master/example/docker-compose#grafana-74x) and [these docs](../../configuration/querying) for help.
|
When using older versions of Grafana you must also use `tempo-query` in order to visualize traces. `tempo-query` is [Jaeger Query](https://www.jaegertracing.io/docs/1.19/deployment/#query-service--ui) with a [GRPC Plugin](https://github.com/jaegertracing/jaeger/tree/master/plugin/storage/grpc) that allows it to query Tempo. See [this example](https://github.com/grafana/tempo/tree/main/example/docker-compose#grafana-74x) and [these docs](../../configuration/querying) for help.
|
@ -6,7 +6,7 @@ weight: 600
|
|||||||
# Contribute
|
# Contribute
|
||||||
This page lists resources for developers who want to contribute to the Tempo software ecosystem.
|
This page lists resources for developers who want to contribute to the Tempo software ecosystem.
|
||||||
|
|
||||||
- [Governance](https://github.com/grafana/tempo/blob/master/GOVERNANCE.md)
|
- [Governance](https://github.com/grafana/tempo/blob/main/GOVERNANCE.md)
|
||||||
- [Contributing](https://github.com/grafana/tempo/blob/master/CONTRIBUTING.md)
|
- [Contributing](https://github.com/grafana/tempo/blob/main/CONTRIBUTING.md)
|
||||||
- [Code of Conduct](https://github.com/grafana/tempo/blob/master/CODE_OF_CONDUCT.md)
|
- [Code of Conduct](https://github.com/grafana/tempo/blob/main/CODE_OF_CONDUCT.md)
|
||||||
- [License](https://github.com/grafana/tempo/blob/master/LICENSE)
|
- [License](https://github.com/grafana/tempo/blob/main/LICENSE)
|
@ -18,7 +18,7 @@ This section explains the configuration options for Tempo as well as the details
|
|||||||
- [Compression](#compression)
|
- [Compression](#compression)
|
||||||
|
|
||||||
## Authentication/Server
|
## Authentication/Server
|
||||||
Tempo uses the Weaveworks/common server. See [here](https://github.com/weaveworks/common/blob/master/server/server.go#L45) for all configuration options.
|
Tempo uses the Weaveworks/common server. See [here](https://github.com/weaveworks/common/blob/main/server/server.go#L45) for all configuration options.
|
||||||
|
|
||||||
```
|
```
|
||||||
auth_enabled: false # do not require X-Scope-OrgID
|
auth_enabled: false # do not require X-Scope-OrgID
|
||||||
@ -27,10 +27,10 @@ server:
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Distributor
|
## Distributor
|
||||||
See [here](https://github.com/grafana/tempo/blob/master/modules/distributor/config.go) for all configuration options.
|
See [here](https://github.com/grafana/tempo/blob/main/modules/distributor/config.go) for all configuration options.
|
||||||
|
|
||||||
Distributors are responsible for receiving spans and forwarding them to the appropriate ingesters. The below configuration
|
Distributors are responsible for receiving spans and forwarding them to the appropriate ingesters. The below configuration
|
||||||
exposes the otlp receiver on port 0.0.0.0:5680. [This configuration](https://github.com/grafana/tempo/blob/master/example/docker-compose/etc/tempo-s3-minio.yaml) shows how to
|
exposes the otlp receiver on port 0.0.0.0:5680. [This configuration](https://github.com/grafana/tempo/blob/main/example/docker-compose/etc/tempo-s3-minio.yaml) shows how to
|
||||||
configure all available receiver options.
|
configure all available receiver options.
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -43,7 +43,7 @@ distributor:
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Ingester
|
## Ingester
|
||||||
See [here](https://github.com/grafana/tempo/blob/master/modules/ingester/config.go) for all configuration options.
|
See [here](https://github.com/grafana/tempo/blob/main/modules/ingester/config.go) for all configuration options.
|
||||||
|
|
||||||
The ingester is responsible for batching up traces and pushing them to [TempoDB](#storage).
|
The ingester is responsible for batching up traces and pushing them to [TempoDB](#storage).
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ ingester:
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Query Frontend
|
## Query Frontend
|
||||||
See [here](https://github.com/grafana/tempo/blob/master/modules/frontend/config.go) for all configuration options.
|
See [here](https://github.com/grafana/tempo/blob/main/modules/frontend/config.go) for all configuration options.
|
||||||
|
|
||||||
The Query Frontend is responsible for sharding incoming requests for faster processing in parallel (by the queriers).
|
The Query Frontend is responsible for sharding incoming requests for faster processing in parallel (by the queriers).
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ query_frontend:
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Querier
|
## Querier
|
||||||
See [here](https://github.com/grafana/tempo/blob/master/modules/querier/config.go) for all configuration options.
|
See [here](https://github.com/grafana/tempo/blob/main/modules/querier/config.go) for all configuration options.
|
||||||
|
|
||||||
The Querier is responsible for querying the backends/cache for the traceID.
|
The Querier is responsible for querying the backends/cache for the traceID.
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ It also queries compacted blocks that fall within the (2 * BlocklistPoll) range
|
|||||||
is defined in the storage section below.
|
is defined in the storage section below.
|
||||||
|
|
||||||
## Compactor
|
## Compactor
|
||||||
See [here](https://github.com/grafana/tempo/blob/master/modules/compactor/config.go) for all configuration options.
|
See [here](https://github.com/grafana/tempo/blob/main/modules/compactor/config.go) for all configuration options.
|
||||||
|
|
||||||
Compactors stream blocks from the storage backend, combine them and write them back. Values shown below are the defaults.
|
Compactors stream blocks from the storage backend, combine them and write them back. Values shown below are the defaults.
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ compactor:
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Storage
|
## Storage
|
||||||
See [here](https://github.com/grafana/tempo/blob/master/tempodb/config.go) for all configuration options.
|
See [here](https://github.com/grafana/tempo/blob/main/tempodb/config.go) for all configuration options.
|
||||||
|
|
||||||
The storage block is used to configure TempoDB. It supports S3, GCS, Azure, local file system, and optionally can use Memcached or Redis for increased query performance.
|
The storage block is used to configure TempoDB. It supports S3, GCS, Azure, local file system, and optionally can use Memcached or Redis for increased query performance.
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ weight: 30
|
|||||||
# Manifest
|
# Manifest
|
||||||
|
|
||||||
This doc contains all Tempo options and their defaults. It is likely quite overwhelming and if you are just getting
|
This doc contains all Tempo options and their defaults. It is likely quite overwhelming and if you are just getting
|
||||||
started it is recommend to check [Tempo examples](https://github.com/grafana/tempo/tree/master/example/docker-compose)
|
started it is recommend to check [Tempo examples](https://github.com/grafana/tempo/tree/main/example/docker-compose)
|
||||||
and other configuration documentation. Most installations will require only setting 10 to 20 of these options.
|
and other configuration documentation. Most installations will require only setting 10 to 20 of these options.
|
||||||
|
|
||||||
It was generated by running Tempo with a minimal configuration and accessing the `/config` endpoint:
|
It was generated by running Tempo with a minimal configuration and accessing the `/config` endpoint:
|
||||||
|
@ -9,7 +9,7 @@ and help you set up your datasources appropriately.
|
|||||||
## Grafana 7.5.x (easy mode)
|
## Grafana 7.5.x (easy mode)
|
||||||
|
|
||||||
Grafana 7.5.x is able to query Tempo directly. Point the Grafana datasource at your Tempo query frontend (or single
|
Grafana 7.5.x is able to query Tempo directly. Point the Grafana datasource at your Tempo query frontend (or single
|
||||||
binary) and enter the url: `http://<tempo hostname>:<http port number>`. For most of [our examples](https://github.com/grafana/tempo/tree/master/example/docker-compose) the following works.
|
binary) and enter the url: `http://<tempo hostname>:<http port number>`. For most of [our examples](https://github.com/grafana/tempo/tree/main/example/docker-compose) the following works.
|
||||||
|
|
||||||
<p align="center"><img src="../ds75.png" alt="Grafana 7.5.x datasource"></p>
|
<p align="center"><img src="../ds75.png" alt="Grafana 7.5.x datasource"></p>
|
||||||
|
|
||||||
@ -19,6 +19,6 @@ Note that the port of 3100 is a common port used in our examples. Tempo default
|
|||||||
## Grafana 7.4.x
|
## Grafana 7.4.x
|
||||||
|
|
||||||
Grafana 7.4.x is *not* able to query Tempo directly and requires the tempo-query component as an intermediary. In this case
|
Grafana 7.4.x is *not* able to query Tempo directly and requires the tempo-query component as an intermediary. In this case
|
||||||
you need to run Tempo-Query and direct it at Tempo proper. Check out [the Grafana 7.4.x example](https://github.com/grafana/tempo/tree/master/example/docker-compose#grafana-74x) to help with configuration.
|
you need to run Tempo-Query and direct it at Tempo proper. Check out [the Grafana 7.4.x example](https://github.com/grafana/tempo/tree/main/example/docker-compose#grafana-74x) to help with configuration.
|
||||||
|
|
||||||
The url entered will be `http://<tempo-query hostname>:16686/`.
|
The url entered will be `http://<tempo-query hostname>:16686/`.
|
@ -10,25 +10,25 @@ The linked folders contain example deployments of Tempo. They are a good resour
|
|||||||
|
|
||||||
## Docker Compose
|
## Docker Compose
|
||||||
|
|
||||||
The [docker-compose](https://github.com/grafana/tempo/tree/master/example/docker-compose) examples are simpler and designed to show minimal configuration. This is a great place
|
The [docker-compose](https://github.com/grafana/tempo/tree/main/example/docker-compose) examples are simpler and designed to show minimal configuration. This is a great place
|
||||||
to get started with Tempo and learn about various trace discovery flows.
|
to get started with Tempo and learn about various trace discovery flows.
|
||||||
|
|
||||||
- [local storage](https://github.com/grafana/tempo/tree/master/example/docker-compose/readme.md#local-storage)
|
- [local storage](https://github.com/grafana/tempo/tree/main/example/docker-compose/readme.md#local-storage)
|
||||||
- At its simplest Tempo only requires a few parameters that identify where to store traces.
|
- At its simplest Tempo only requires a few parameters that identify where to store traces.
|
||||||
- [s3/minio storage](https://github.com/grafana/tempo/tree/master/example/docker-compose/readme.md#s3)
|
- [s3/minio storage](https://github.com/grafana/tempo/tree/main/example/docker-compose/readme.md#s3)
|
||||||
- To reduce complexity not all config options are exposed on the command line. This example uses the minio/s3 backend with a config file.
|
- To reduce complexity not all config options are exposed on the command line. This example uses the minio/s3 backend with a config file.
|
||||||
- [Trace discovery with Loki](https://github.com/grafana/tempo/tree/master/example/docker-compose/readme.md#loki-derived-fields)
|
- [Trace discovery with Loki](https://github.com/grafana/tempo/tree/main/example/docker-compose/readme.md#loki-derived-fields)
|
||||||
- This example brings in Loki and shows how to use a log flow to discover traces.
|
- This example brings in Loki and shows how to use a log flow to discover traces.
|
||||||
|
|
||||||
## Jsonnet/Tanka
|
## Jsonnet/Tanka
|
||||||
|
|
||||||
The [jsonnet](https://github.com/grafana/tempo/tree/master/example/tk) examples are more complex and show off the full range of configuration available to Tempo. The
|
The [jsonnet](https://github.com/grafana/tempo/tree/main/example/tk) examples are more complex and show off the full range of configuration available to Tempo. The
|
||||||
Helm and jsonnet examples are equivalent. They are both provided for people who prefer different configuration
|
Helm and jsonnet examples are equivalent. They are both provided for people who prefer different configuration
|
||||||
mechanisms.
|
mechanisms.
|
||||||
|
|
||||||
- [single binary](https://github.com/grafana/tempo/tree/master/example/tk/readme.md#single-binary)
|
- [single binary](https://github.com/grafana/tempo/tree/main/example/tk/readme.md#single-binary)
|
||||||
- A single binary jsonnet deployment. Valuable for getting started with advanced configuration.
|
- A single binary jsonnet deployment. Valuable for getting started with advanced configuration.
|
||||||
- [microservices](https://github.com/grafana/tempo/tree/master/example/tk/readme.md#microservices)
|
- [microservices](https://github.com/grafana/tempo/tree/main/example/tk/readme.md#microservices)
|
||||||
- Tempo as a set of independently scalable microservices. This is recommended for high volume full production deployments.
|
- Tempo as a set of independently scalable microservices. This is recommended for high volume full production deployments.
|
||||||
|
|
||||||
## Helm
|
## Helm
|
||||||
|
@ -10,4 +10,4 @@ Getting started with Tempo is easy.
|
|||||||
- For an application already instrumented for tracing, [this guide]({{< relref "quickstart-tempo.md" >}}) can help quickly set it up with Tempo.
|
- For an application already instrumented for tracing, [this guide]({{< relref "quickstart-tempo.md" >}}) can help quickly set it up with Tempo.
|
||||||
- If you're looking for a demo application to play around with Tempo, check the [examples with demo app]({{< relref "example-demo-app.md" >}}) topic.
|
- If you're looking for a demo application to play around with Tempo, check the [examples with demo app]({{< relref "example-demo-app.md" >}}) topic.
|
||||||
|
|
||||||
> **Note:** The Grafana Cloud Agent is already set up to use Tempo. Refer to the [configuration](https://github.com/grafana/agent/blob/master/docs/configuration-reference.md#tempo_config) and [example](https://github.com/grafana/agent/blob/master/example/docker-compose/agent/config/agent.yaml) for details.
|
> **Note:** The Grafana Cloud Agent is already set up to use Tempo. Refer to the [configuration](https://github.com/grafana/agent/blob/main/docs/configuration-reference.md#tempo_config) and [example](https://github.com/grafana/agent/blob/main/example/docker-compose/agent/config/agent.yaml) for details.
|
||||||
|
@ -4,15 +4,15 @@ title: Examples with demo app
|
|||||||
|
|
||||||
# Examples with demo app
|
# Examples with demo app
|
||||||
|
|
||||||
If you don't have an application to instrument at the moment, fret not! A number of [examples](https://github.com/grafana/tempo/tree/master/example) have been provided which show off various deployment and [configuration]({{< relref "../configuration" >}}) options.
|
If you don't have an application to instrument at the moment, fret not! A number of [examples](https://github.com/grafana/tempo/tree/main/example) have been provided which show off various deployment and [configuration]({{< relref "../configuration" >}}) options.
|
||||||
|
|
||||||
Some highlights:
|
Some highlights:
|
||||||
- [Configuration](https://github.com/grafana/tempo/blob/master/example/docker-compose/etc/tempo-s3-minio.yaml)
|
- [Configuration](https://github.com/grafana/tempo/blob/main/example/docker-compose/etc/tempo-s3-minio.yaml)
|
||||||
- Shows S3/minio config
|
- Shows S3/minio config
|
||||||
- Shows how to start all receivers with their default endpoints
|
- Shows how to start all receivers with their default endpoints
|
||||||
- Shows most configuration options
|
- Shows most configuration options
|
||||||
- [Docker-compose](https://github.com/grafana/tempo/blob/master/example/docker-compose/docker-compose.yaml)
|
- [Docker-compose](https://github.com/grafana/tempo/blob/main/example/docker-compose/docker-compose.yaml)
|
||||||
- Shows an extremely basic configuration with local storage.
|
- Shows an extremely basic configuration with local storage.
|
||||||
- [Microservices](https://github.com/grafana/tempo/tree/master/example/tk)
|
- [Microservices](https://github.com/grafana/tempo/tree/main/example/tk)
|
||||||
- This jsonnet based example shows a complete microservice based deployment.
|
- This jsonnet based example shows a complete microservice based deployment.
|
||||||
|
|
||||||
|
@ -13,10 +13,10 @@ First, set up a docker network as shown -
|
|||||||
docker network create docker-tempo
|
docker network create docker-tempo
|
||||||
```
|
```
|
||||||
|
|
||||||
Next, download the [configuration file](https://github.com/grafana/tempo/blob/master/example/docker-compose/etc/tempo-local.yaml) using the following command -
|
Next, download the [configuration file](https://github.com/grafana/tempo/blob/main/example/docker-compose/etc/tempo-local.yaml) using the following command -
|
||||||
|
|
||||||
```
|
```
|
||||||
curl -o tempo-local.yaml https://raw.githubusercontent.com/grafana/tempo/master/example/docker-compose/etc/tempo-local.yaml
|
curl -o tempo-local.yaml https://raw.githubusercontent.com/grafana/tempo/main/example/docker-compose/etc/tempo-local.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
The config file above configures Tempo to listen on default ports for a number of protocols.
|
The config file above configures Tempo to listen on default ports for a number of protocols.
|
||||||
|
@ -3,7 +3,7 @@ title: Integration guides
|
|||||||
weight: 400
|
weight: 400
|
||||||
---
|
---
|
||||||
|
|
||||||
Because Tempo is a trace id only lookup it relies on integrations for trace discovery. Common methods of discovery are through logs and exemplars. [The examples](https://github.com/grafana/tempo/tree/master/example) are also a good place to see how some of these discovery flows work.
|
Because Tempo is a trace id only lookup it relies on integrations for trace discovery. Common methods of discovery are through logs and exemplars. [The examples](https://github.com/grafana/tempo/tree/main/example) are also a good place to see how some of these discovery flows work.
|
||||||
|
|
||||||
- [Loki Derived Fields](loki-derived-fields/)
|
- [Loki Derived Fields](loki-derived-fields/)
|
||||||
- [Pushing Spans with HTTP](pushing-spans-with-http/)
|
- [Pushing Spans with HTTP](pushing-spans-with-http/)
|
||||||
|
@ -7,7 +7,7 @@ of a header: `X-Scope-OrgID`. This guide details how to setup or disable multite
|
|||||||
|
|
||||||
## Multitenancy
|
## Multitenancy
|
||||||
|
|
||||||
If you're interested in setting up multitenancy, please consult the [multitenant example](https://github.com/grafana/tempo/tree/master/example/docker-compose/docker-compose.multitenant.yaml)
|
If you're interested in setting up multitenancy, please consult the [multitenant example](https://github.com/grafana/tempo/tree/main/example/docker-compose/docker-compose.multitenant.yaml)
|
||||||
in the repo. This example uses the following settings to achieve multitenancy in Tempo:
|
in the repo. This example uses the following settings to achieve multitenancy in Tempo:
|
||||||
|
|
||||||
- Configure the OTEL Collector to attach the X-Scope-OrgID header on push:
|
- Configure the OTEL Collector to attach the X-Scope-OrgID header on push:
|
||||||
|
@ -58,7 +58,7 @@ Note that the `timestamp` field is in microseconds and was obtained by running `
|
|||||||
|
|
||||||
## Retrieving Traces
|
## Retrieving Traces
|
||||||
|
|
||||||
The easiest way to get the trace is to execute a simple curl command to Tempo. The returned format is [OTLP](https://github.com/open-telemetry/opentelemetry-proto/blob/master/opentelemetry/proto/trace/v1/trace.proto).
|
The easiest way to get the trace is to execute a simple curl command to Tempo. The returned format is [OTLP](https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/trace/v1/trace.proto).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl http://localhost:3100/tempo/api/traces/0123456789abcdef
|
curl http://localhost:3100/tempo/api/traces/0123456789abcdef
|
||||||
|
@ -5,7 +5,7 @@ weight: 300
|
|||||||
|
|
||||||
# Monitoring Tempo
|
# Monitoring Tempo
|
||||||
|
|
||||||
The Tempo repository has a [mixin](https://github.com/grafana/tempo/tree/master/operations/tempo-mixin) that includes a
|
The Tempo repository has a [mixin](https://github.com/grafana/tempo/tree/main/operations/tempo-mixin) that includes a
|
||||||
set of dashboards, rules and alerts. Together, these can be used to monitor Tempo in production.
|
set of dashboards, rules and alerts. Together, these can be used to monitor Tempo in production.
|
||||||
|
|
||||||
## Dashboards
|
## Dashboards
|
||||||
@ -60,11 +60,11 @@ This dashboard is included in this repo for two reasons:
|
|||||||
|
|
||||||
## Rules and Alerts
|
## Rules and Alerts
|
||||||
|
|
||||||
The Rules and Alerts are available as [yaml files in the mixin](https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/out) on the repository.
|
The Rules and Alerts are available as [yaml files in the mixin](https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/out) on the repository.
|
||||||
|
|
||||||
To set up alerting, download the provided json files and configure them for use on your Prometheus monitoring server.
|
To set up alerting, download the provided json files and configure them for use on your Prometheus monitoring server.
|
||||||
|
|
||||||
Check the [runbook](https://github.com/grafana/tempo/blob/master/operations/tempo-mixin/runbook.md) to understand the
|
Check the [runbook](https://github.com/grafana/tempo/blob/main/operations/tempo-mixin/runbook.md) to understand the
|
||||||
various steps that can be taken to fix firing alerts!
|
various steps that can be taken to fix firing alerts!
|
||||||
|
|
||||||
## Important Metrics
|
## Important Metrics
|
||||||
|
@ -6,7 +6,7 @@ server:
|
|||||||
distributor:
|
distributor:
|
||||||
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
||||||
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
||||||
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/master/receiver
|
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
|
||||||
thrift_http: #
|
thrift_http: #
|
||||||
grpc: # for a production deployment you should only enable the receivers you need!
|
grpc: # for a production deployment you should only enable the receivers you need!
|
||||||
thrift_binary:
|
thrift_binary:
|
||||||
|
@ -6,7 +6,7 @@ server:
|
|||||||
distributor:
|
distributor:
|
||||||
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
||||||
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
||||||
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/master/receiver
|
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
|
||||||
thrift_http: #
|
thrift_http: #
|
||||||
grpc: # for a production deployment you should only enable the receivers you need!
|
grpc: # for a production deployment you should only enable the receivers you need!
|
||||||
thrift_binary:
|
thrift_binary:
|
||||||
|
@ -6,7 +6,7 @@ server:
|
|||||||
distributor:
|
distributor:
|
||||||
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
||||||
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
||||||
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/master/receiver
|
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
|
||||||
thrift_http: #
|
thrift_http: #
|
||||||
grpc: # for a production deployment you should only enable the receivers you need!
|
grpc: # for a production deployment you should only enable the receivers you need!
|
||||||
thrift_binary:
|
thrift_binary:
|
||||||
|
@ -6,7 +6,7 @@ server:
|
|||||||
distributor:
|
distributor:
|
||||||
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
||||||
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
||||||
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/master/receiver
|
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
|
||||||
thrift_http: #
|
thrift_http: #
|
||||||
grpc: # for a production deployment you should only enable the receivers you need!
|
grpc: # for a production deployment you should only enable the receivers you need!
|
||||||
thrift_binary:
|
thrift_binary:
|
||||||
|
@ -30,7 +30,7 @@ type Config struct {
|
|||||||
DistributorRing cortex_distributor.RingConfig `yaml:"ring,omitempty"`
|
DistributorRing cortex_distributor.RingConfig `yaml:"ring,omitempty"`
|
||||||
// receivers map for shim.
|
// receivers map for shim.
|
||||||
// This receivers node is equivalent in format to the receiver node in the
|
// This receivers node is equivalent in format to the receiver node in the
|
||||||
// otel collector: https://github.com/open-telemetry/opentelemetry-collector/tree/master/receiver
|
// otel collector: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
|
||||||
Receivers map[string]interface{} `yaml:"receivers"`
|
Receivers map[string]interface{} `yaml:"receivers"`
|
||||||
OverrideRingKey string `yaml:"override_ring_key"`
|
OverrideRingKey string `yaml:"override_ring_key"`
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
message: |||
|
message: |||
|
||||||
{{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}% errors.
|
{{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}% errors.
|
||||||
|||,
|
|||,
|
||||||
runbook_url: 'https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoRequestErrors'
|
runbook_url: 'https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoRequestErrors'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -36,7 +36,7 @@
|
|||||||
message: |||
|
message: |||
|
||||||
{{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}s 99th percentile latency.
|
{{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}s 99th percentile latency.
|
||||||
|||,
|
|||,
|
||||||
runbook_url: 'https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoRequestLatency'
|
runbook_url: 'https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoRequestLatency'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -50,7 +50,7 @@
|
|||||||
},
|
},
|
||||||
annotations: {
|
annotations: {
|
||||||
message: 'There are {{ printf "%f" $value }} unhealthy compactor(s).',
|
message: 'There are {{ printf "%f" $value }} unhealthy compactor(s).',
|
||||||
runbook_url: 'https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoCompactorUnhealthy'
|
runbook_url: 'https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoCompactorUnhealthy'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -64,7 +64,7 @@
|
|||||||
},
|
},
|
||||||
annotations: {
|
annotations: {
|
||||||
message: 'There are {{ printf "%f" $value }} unhealthy distributor(s).',
|
message: 'There are {{ printf "%f" $value }} unhealthy distributor(s).',
|
||||||
runbook_url: 'https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoDistributorUnhealthy'
|
runbook_url: 'https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoDistributorUnhealthy'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -78,7 +78,7 @@
|
|||||||
},
|
},
|
||||||
annotations: {
|
annotations: {
|
||||||
message: 'Greater than %s compactions have failed in the past hour.' % $._config.alerts.compactions_per_hour_failed,
|
message: 'Greater than %s compactions have failed in the past hour.' % $._config.alerts.compactions_per_hour_failed,
|
||||||
runbook_url: 'https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoCompactionsFailing'
|
runbook_url: 'https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoCompactionsFailing'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -92,7 +92,7 @@
|
|||||||
},
|
},
|
||||||
annotations: {
|
annotations: {
|
||||||
message: 'Greater than %s flushes have failed in the past hour.' % $._config.alerts.flushes_per_hour_failed,
|
message: 'Greater than %s flushes have failed in the past hour.' % $._config.alerts.flushes_per_hour_failed,
|
||||||
runbook_url: 'https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoFlushesFailing'
|
runbook_url: 'https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoFlushesFailing'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -106,7 +106,7 @@
|
|||||||
},
|
},
|
||||||
annotations: {
|
annotations: {
|
||||||
message: 'Greater than %s polls have failed in the past hour.' % $._config.alerts.polls_per_hour_failed,
|
message: 'Greater than %s polls have failed in the past hour.' % $._config.alerts.polls_per_hour_failed,
|
||||||
runbook_url: 'https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoPollsFailing'
|
runbook_url: 'https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoPollsFailing'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"annotations":
|
"annotations":
|
||||||
"message": |
|
"message": |
|
||||||
{{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}% errors.
|
{{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}% errors.
|
||||||
"runbook_url": "https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoRequestErrors"
|
"runbook_url": "https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoRequestErrors"
|
||||||
"expr": |
|
"expr": |
|
||||||
100 * sum(rate(tempo_request_duration_seconds_count{status_code=~"5.."}[1m])) by (namespace, job, route)
|
100 * sum(rate(tempo_request_duration_seconds_count{status_code=~"5.."}[1m])) by (namespace, job, route)
|
||||||
/
|
/
|
||||||
@ -18,7 +18,7 @@
|
|||||||
"annotations":
|
"annotations":
|
||||||
"message": |
|
"message": |
|
||||||
{{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}s 99th percentile latency.
|
{{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}s 99th percentile latency.
|
||||||
"runbook_url": "https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoRequestLatency"
|
"runbook_url": "https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoRequestLatency"
|
||||||
"expr": |
|
"expr": |
|
||||||
namespace_job_route:tempo_request_duration_seconds:99quantile{route!~"metrics|/frontend.Frontend/Process"} > 3
|
namespace_job_route:tempo_request_duration_seconds:99quantile{route!~"metrics|/frontend.Frontend/Process"} > 3
|
||||||
"for": "15m"
|
"for": "15m"
|
||||||
@ -27,7 +27,7 @@
|
|||||||
- "alert": "TempoCompactorUnhealthy"
|
- "alert": "TempoCompactorUnhealthy"
|
||||||
"annotations":
|
"annotations":
|
||||||
"message": "There are {{ printf \"%f\" $value }} unhealthy compactor(s)."
|
"message": "There are {{ printf \"%f\" $value }} unhealthy compactor(s)."
|
||||||
"runbook_url": "https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoCompactorUnhealthy"
|
"runbook_url": "https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoCompactorUnhealthy"
|
||||||
"expr": |
|
"expr": |
|
||||||
max by (cluster, namespace) (cortex_ring_members{state="Unhealthy", name="compactor"}) > 0
|
max by (cluster, namespace) (cortex_ring_members{state="Unhealthy", name="compactor"}) > 0
|
||||||
"for": "15m"
|
"for": "15m"
|
||||||
@ -36,7 +36,7 @@
|
|||||||
- "alert": "TempoDistributorUnhealthy"
|
- "alert": "TempoDistributorUnhealthy"
|
||||||
"annotations":
|
"annotations":
|
||||||
"message": "There are {{ printf \"%f\" $value }} unhealthy distributor(s)."
|
"message": "There are {{ printf \"%f\" $value }} unhealthy distributor(s)."
|
||||||
"runbook_url": "https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoDistributorUnhealthy"
|
"runbook_url": "https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoDistributorUnhealthy"
|
||||||
"expr": |
|
"expr": |
|
||||||
max by (cluster, namespace) (cortex_ring_members{state="Unhealthy", name="distributor"}) > 0
|
max by (cluster, namespace) (cortex_ring_members{state="Unhealthy", name="distributor"}) > 0
|
||||||
"for": "15m"
|
"for": "15m"
|
||||||
@ -45,7 +45,7 @@
|
|||||||
- "alert": "TempoCompactionsFailing"
|
- "alert": "TempoCompactionsFailing"
|
||||||
"annotations":
|
"annotations":
|
||||||
"message": "Greater than 2 compactions have failed in the past hour."
|
"message": "Greater than 2 compactions have failed in the past hour."
|
||||||
"runbook_url": "https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoCompactionsFailing"
|
"runbook_url": "https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoCompactionsFailing"
|
||||||
"expr": |
|
"expr": |
|
||||||
sum by (cluster, namespace) (increase(tempodb_compaction_errors_total{}[1h])) > 2
|
sum by (cluster, namespace) (increase(tempodb_compaction_errors_total{}[1h])) > 2
|
||||||
"labels":
|
"labels":
|
||||||
@ -53,7 +53,7 @@
|
|||||||
- "alert": "TempoFlushesFailing"
|
- "alert": "TempoFlushesFailing"
|
||||||
"annotations":
|
"annotations":
|
||||||
"message": "Greater than 2 flushes have failed in the past hour."
|
"message": "Greater than 2 flushes have failed in the past hour."
|
||||||
"runbook_url": "https://github.com/grafana/tempo/tree/master/operations/tempo-mixin/runbook.md#TempoFlushesFailing"
|
"runbook_url": "https://github.com/grafana/tempo/tree/main/operations/tempo-mixin/runbook.md#TempoFlushesFailing"
|
||||||
"expr": |
|
"expr": |
|
||||||
sum by (cluster, namespace) (increase(tempo_ingester_failed_flushes_total{}[1h])) > 2
|
sum by (cluster, namespace) (increase(tempo_ingester_failed_flushes_total{}[1h])) > 2
|
||||||
"labels":
|
"labels":
|
||||||
|
Reference in New Issue
Block a user