Uptrace v1.6 is available
Tags: monitoring, apm, devops, tooling
Published: 2024-03-25 14:37:06

The Uptrace team is pleased to present the latest v1.6 release, which adds support for service graphs, Prometheus remote write, Grafana data source for Prometheus, annotations, and much more.

## Service Graphs

Service Graphs provide a visual representation of service interactions, dependencies, and performance metrics. They are built by analyzing span relationships and require certain span attributes.

![Service graph](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p637rlqh3h5yaaej3h74.png)

The same data is also available as a metrics dashboard which comes by default with Uptrace:

![Service graph dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ferdyf0bitnhiyochxml.png)

## Prometheus remote write

Starting with the v1.6 release, Uptrace natively supports Prometheus Remote Write protocol, which allows Prometheus to send its collected metrics data to a long-term storage solution such as Uptrace.

You can configure Prometheus Remote Write using the following endpoint:

```yaml
remote_write:
  - url: 'http://localhost:14318/api/v1/prometheus/write'
    headers: { 'uptrace-dsn': 'http://project2_secret_token@localhost:14318?grpc=14317' }
```
The configuration above allows to send Prometheus data directly to Uptrace without using [OpenTelemetry Collector](https://uptrace.dev/get/ingest/prometheus.html#opentelemetry-collector).

## Grafana Prometheus data source

You can also use Uptrace as a [Prometheus data source in Grafana](https://uptrace.dev/get/grafana.html). Uptrace uses the original Prometheus engine so all Prometheus queries should be supported and you should be able to use existing Grafana dashboards with the Uptrace data source.

1. In Grafana, go to "Configururation" -> "Data source".
2. Click on "Add data source" and then select "Prometheus".
3. As an URL, use the Uptrace HTTP address, for example, `http://localhost:14318/api/prometheus` or `https://api.uptrace.dev/api/prometheus`.
4. In "Custom HTTP Headers" section, click "Add header" to specify Uptrace DSN.

   - Header: `uptrace-dsn`
   - Value: `http://project2_secret_token@localhost:14318?grpc=14317`

![Prometheus datasource](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3jgv89aq17dt2rfr6wah.png)

## Chart annotations

Chart annotations are labels or notes added to a chart to provide additional information or context. Annotations help clarify the data presented in the chart and help the viewer understand key points or trends.

Uptrace displays annotations as square dots on the x-axis. Clicking on an annotation displays the annotation description and tags. The description field can contain markdown links to other systems with more details.

![Annotations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ov8tf346id213cj0zs59.png)

You can create annotations by sending an HTTP POST request to the Uptrace API, for example, when deploying a new version of your application:

```shell
curl -X POST http://localhost:14318/api/v1/annotations \
   -H 'uptrace-dsn: https://<token>@api.uptrace.dev/<project_id>' \
   -d '{"name":"Deployed to production", "attrs": {"service.version": "540d2ee"}}'
```

See [documentation](https://uptrace.dev/get/annotations.html) for more details.

## HTTPcheck Receiver

HTTP Check Receiver is a component of the OpenTelemetry Collector that can be used to perform synthetic checks against HTTP endpoints, for example:

```yaml
receivers:
  httpcheck:
    targets:
      - endpoint: 'https://api.uptrace.dev/health/status'
        method: GET
    collection_interval: 15s
```

Starting with the v1.6 release, Uptrace comes with a pre-built dashboard to visualize the collected data:

![HTTP check](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1lwwbm2dtag1ue5okybw.png)

Just like with other metrics, you can [create monitors](https://uptrace.dev/get/alerting.html#monitoring-metrics) to receive notifications when certain conditions are met:

![HTTP check dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z91hswkrbkrngofj4ony.png)

See [OpenTelemetry HTTP check](https://uptrace.dev/get/monitor/opentelemetry-httpcheck.html) for details.

## Uptrace DSN

Uptrace DSN (Data Source Name) is a connection string that is used to connect and send data to an Uptrace backend. It contains a backend address (host:port) and a secret token that grants access to a project.

If the recent version Uptrace DSN was extended to also contain the gRPC port in case you're using the OTLP/gRPC exporter:

```shell
# before
UPTRACE_DSN="http://project1_secret_token@localhost:14318/1"

# after
UPTRACE_DSN="http://project1_secret_token@localhost:14318?grpc=14317"
```

Previously issued DSNs are still fully supported.

## Conclusion

The full [list of changes](https://github.com/uptrace/uptrace/blob/master/CHANGELOG.md) is available on GitHub, where you can also [download](https://uptrace.dev/get/install.html) the latest version or [run Uptrace](<(https://github.com/uptrace/uptrace/tree/master/example/docker)>) locally using Docker.

You can also [sign up](https://app.uptrace.dev/join) for a free Cloud account and get 1TB of storage and 50,000 timeseries. No credit card required.

- [Open Source Splunk Alternatives](https://uptrace.dev/blog/splunk-alternatives.html)