Skip to content

Adding Backend Data

Mobore accepts OpenTelemetry traces via OTLP/proto. Export your backend spans to correlate with mobile sessions.

Mobore provides two endpoints for sending telemetry data:

  • URL: https://traces.mobore.com/v1/traces
  • Protocol: OTLP over HTTP (protobuf encoding only)
  • Status: Stable
  • URL: https://raw.mobere.com
  • Protocol: Supports both OTLP over GRPC and OTLP JSON over HTTP
  • Status: Beta - Subject to change

Use the production endpoint for stable deployments. The beta endpoint is available for testing GRPC and JSON inputs but may change without notice.

import { NodeSDK } from '@opentelemetry/sdk-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
const traceExporter = new OTLPTraceExporter({
url: 'https://traces.mobore.com/v1/traces',
headers: { authorization: 'YOUR_CLIENT_TOKEN' },
});
const sdk = new NodeSDK({
traceExporter,
serviceName: 'my-backend-service',
});
sdk.start();
process.on('SIGTERM', () => sdk.shutdown());

At the moment the production endpoint supports OTLP over HTTP with protobuf encoding only.

The beta endpoint at https://raw.mobere.com supports additional protocols:

  • OTLP over GRPC (recommended for high-throughput scenarios)
  • OTLP JSON over HTTP (easier for debugging and integration)

For the beta endpoint, use the same authorization: YOUR_CLIENT_TOKEN header.

  • Go: use go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp with WithEndpoint("traces.mobore.com"), WithURLPath("/v1/traces"), and add header authorization: YOUR_CLIENT_TOKEN. For beta GRPC support, use WithEndpoint("raw.mobere.com") with the GRPC exporter.
  • Java: use OTLP HTTP exporter and set endpoint to https://traces.mobore.com/v1/traces with the same header. For beta JSON support, use https://raw.mobere.com with JSON encoding.
  • Python: use OTLPSpanExporter with endpoint set to the URL above and add the authorization header. For beta GRPC support, use the GRPC exporter with endpoint="https://raw.mobere.com". Ensure protobuf is installed (e.g., pip install opentelemetry-exporter-otlp-proto-http protobuf).

Example (Python):

from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
exporter = OTLPSpanExporter(
endpoint="https://traces.mobore.com/v1/traces",
headers=("authorization=YOUR_CLIENT_TOKEN",),
)
provider = TracerProvider()
provider.add_span_processor(BatchSpanProcessor(exporter))
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
exporter = OTLPSpanExporter(
endpoint="https://raw.mobere.com",
headers=("authorization=YOUR_CLIENT_TOKEN",),
)
provider = TracerProvider()
provider.add_span_processor(BatchSpanProcessor(exporter))
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
exporter = OTLPSpanExporter(
endpoint="https://raw.mobere.com",
headers=("authorization=YOUR_CLIENT_TOKEN",),
# This will use JSON format instead of protobuf
)
provider = TracerProvider()
provider.add_span_processor(BatchSpanProcessor(exporter))
  • Set a stable serviceName per service.
  • Use standard OTel attributes where possible; the UI already understands network and error semantics.
  • Mobore correlates backend traces to mobile sessions via standard W3C Trace Context. When your app makes a network request, the RUM SDK injects traceparent/tracestate headers. If your backend honors these headers, the resulting spans will share a trace with the mobile session, enabling deep-links from a session to backend spans.
  • If your mobile app uses custom networking, ensure headers are forwarded. On the server side, enable auto-instrumentation or middleware that reads incoming trace context.