Skip to main content

Hetzner Dedicated

Required Hetzner Dedicated Attributes​

The following cost calculation tags are required for traces originating from Hetzner dedicated servers.

Always Required Fields​

These fields are always required for Hetzner dedicated server cost calculation:

Attribute NameExample ValueAllowed Values
cloud.platformhetzner_dedicatedhetzner_dedicated
host.id2012345Hetzner server number

Optional Fields​

These fields improve cost accuracy but are not required. If absent, Beakpoint uses fallback values:

Attribute NameExample ValueAllowed ValuesFallback Behavior
host.typeAX102Hetzner server productUses default rate for cloud.region, or global default if region is also absent
cloud.regionhel1Hetzner datacenterUses global default rate for the host

Cost Calculation​

Hetzner dedicated servers have a fixed monthly rate. Beakpoint converts this to an hourly rate using 730 hours/month, then calculates cost proportional to span duration:

cost = (span_duration_seconds / 3600) × (monthly_price / 730)

The monthly_price comes from your Beakpoint cost catalog, indexed by the host.type (e.g., AX102). If host.type is omitted, Beakpoint falls back to a default rate for the region specified in cloud.region, or a global default if region is also absent.

Time-Sharing for Overlapping Spans​

When multiple spans overlap on the same server (identified by cloud.platform + host.id), Beakpoint proportionally shares the server's hourly cost. For example, if two spans of equal duration overlap in the same hour, each is charged 50% of the hourly rate. Spans on different server instances are priced independently with no sharing.

Example Configuration​

Setting Resource Attributes​

Set these as OpenTelemetry resource attributes in your application:

OTEL_RESOURCE_ATTRIBUTES: "cloud.platform=hetzner_dedicated,host.id=2012345,host.type=AX102,cloud.region=hel1"

Programmatic Instrumentation​

For Go applications:

resource, _ := resource.New(ctx,
resource.WithAttributes(
attribute.String("cloud.platform", "hetzner_dedicated"),
attribute.String("host.id", "2012345"),
attribute.String("host.type", "AX102"),
attribute.String("cloud.region", "hel1"),
),
)

For Python applications:

from opentelemetry.sdk.resources import Resource

resource = Resource(attributes={
"cloud.platform": "hetzner_dedicated",
"host.id": "2012345",
"host.type": "AX102",
"cloud.region": "hel1",
})

Minimal Configuration​

If you only have the required fields:

OTEL_RESOURCE_ATTRIBUTES: "cloud.platform=hetzner_dedicated,host.id=2012345"

Beakpoint will use default pricing for the unspecified region and server type.

Error Handling​

Beakpoint requires both cloud.platform=hetzner_dedicated and a valid host.id to calculate costs for a trace. If either is missing:

  • The trace is still recorded and observable
  • Spans are not charged to the Hetzner dedicated account
  • Check trace attributes in your Beakpoint dashboard to verify correct tagging

If host.type and cloud.region are both missing, costs are calculated using the global default rate, which may not reflect your actual server configuration.