from opentelemetry import metrics
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import (
PeriodicExportingMetricReader,
from opentelemetry.sdk.resources import Resource
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter
endpoint = "apmplus-cn-beijing.volces.com:4317"
"x-byteapm-appkey": "<app_key>",
"service_name": "<claw_instance_id>",
"apmplus_business_carrier": "arkclaw_enterprise",
"service.instance.id": str(uuid.uuid4()),
resource = Resource.create(resource_attributes)
exporter = OTLPMetricExporter(endpoint=endpoint, headers=headers)
metric_reader = PeriodicExportingMetricReader(exporter)
provider = MeterProvider(metric_readers=[metric_reader], resource=resource)
metrics.set_meter_provider(provider)
meter = metrics.get_meter(
"arkclaw.custom_gateway", version="1.0.0"
token_used_metrics = meter.create_counter(
name="custom_gateway_token_used",
description="Token usage reported by an ArkClaw custom gateway",
return provider, token_used_metrics