Getting started with Uptrace

Getting started with Uptrace and OpenTelemetry is easy:

  1. To host Uptrace yourself, download and install Uptrace binary. Or createopen in new window a free cloud account and let us manage Uptrace for you.

  2. To start receiving data, use the DSN (connection string) you've obtained on the previous step to configure OpenTelemetry for your programming language.

  1. Instrument your application with plugins for popular frameworks and libraries.

Have questions? Get help via Telegramopen in new window, Slackopen in new window, or start a discussionopen in new window on GitHub.


Infrastructure monitoring

To monitor host (infrastructure) metrics, Redis, PostgreSQL, MySQL and many more, use OpenTelemetry Collector.

If you are using AWS, you can also send CloudWatch Metrics directly to Uptrace.

Logs monitoring

To monitor logs, you can use Vector and FluentBit integrations.

If you are using AWS, you can also send CloudWatch Logs directly to 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.

For example, the DSN http://project1_secret_token@localhost:14318?grpc=14317 contains the following information:

  • http tells the client to disable TLS. Use https to enable TLS.
  • localhost:14317 is an address of the Uptrace backend. The cloud version always uses the api.uptrace.dev address without a port.
  • project1_secret_token is a secret token that is used for authentication.
  • ?grpc=14318 is a GRPC port.

You can find your project DSN on the Project Settings page:

Uptrace DSN

Resource attributes

Resource attributes are key-value pairs that provide metadata about the monitored entity, such as a service, process, or container. They help identify the resource and provide additional information that can be used to filter and group telemetry data.

For the full list of attributes, see Semantic attributesopen in new window, but here are the most popular resource attributes to get you started.

AttributeComment
service.nameopen in new windowLogical name of the service. Uptrace provides an overview of all services.
service.versionopen in new windowThe version string of the service API or implementation.
deployment.environmentopen in new windowName of the deployment environment (aka deployment tier). Uptrace can group spans from different environments separately.
host.nameopen in new windowName of the host. Usually, resource detectors discover and set this attribute automatically.

You can set those attributes by using the env resource detector and providing the OTEL_RESOURCE_ATTRIBUTES environment variable:

export OTEL_RESOURCE_ATTRIBUTES=service.name=myservice,service.version=1.0.0,deployment.environment=production

Or you can configure them during OpenTelemetry initialization:

// https://uptrace.dev/get/opentelemetry-go.html

import (
	"github.com/uptrace/uptrace-go/uptrace"
	"go.opentelemetry.io/otel/attribute"
)

uptrace.ConfigureOpentelemetry(
	// copy your project DSN here or use UPTRACE_DSN env var
	//uptrace.WithDSN(""),

	uptrace.WithServiceName("myservice"),
	uptrace.WithServiceVersion("v1.0.0"),
	uptrace.WithResourceAttributes(
		attribute.String("deployment.environment", "production"),
	),
)
# https://uptrace.dev/get/uptrace-python.html

import uptrace

# copy your project DSN here or use UPTRACE_DSN env var
uptrace.configure_opentelemetry(
  dsn="",
  service_name="myservice",
  service_version="1.0.0",
  resource_attributes={"deployment.environment": "production"},
)
# https://uptrace.dev/get/opentelemetry-ruby.html

require 'uptrace'

# copy your project DSN here or use UPTRACE_DSN env var
Uptrace.configure_opentelemetry(dsn: '') do |c|
  # c is OpenTelemetry::SDK::Configurator
  c.service_name = 'myservice'
  c.service_version = '1.0.0'

  c.resource = OpenTelemetry::SDK::Resources::Resource.create(
    'deployment.environment' => 'production'
  )
end
// https://uptrace.dev/get/opentelemetry-js-node.html

const uptrace = require('@uptrace/node')

uptrace
  .configureOpentelemetry({
    // copy your project DSN here or use UPTRACE_DSN env var
    //dsn: '',
    serviceName: 'myservice',
    serviceVersion: '1.0.0',
    resourceAttributes: { 'deployment.environment': 'production' },
  })
  // Start OpenTelemetry SDK.
  .start()
  // Then execute the main function when SDK is ready.
  .then(main)
// https://uptrace.dev/get/opentelemetry-php.html

$uptrace = Uptrace\Distro::builder()
    // copy your project DSN here or use UPTRACE_DSN env var
    //->setDsn('https://<token>@api.uptrace.dev?grpc=4317')
    ->setServiceName('myservice')
    ->setServiceVersion('1.0.0')
    ->setResourceAttributes(['deployment.environment' => 'production'])
    ->buildAndRegisterGlobal();
Last Updated: