More advanced users have the option to use OpenTelemetry Protocol Exporters instead of Middleware’s Agent and associated SDKs to ingest data. Each language will have a different approach which can be an adaptation from our relevant Host Agent.
The example below uses JavaScript and an abstraction from our Node Agent. All other agents can be found in our middleware-labs repo. If you need assistance with a specific language we are happy to work with you, however, we do not have every approach documented at this time.
Instrument your OpenTelemetry code with languages that are supported by both Middleware and
OpenTelemetry.
Installation
Step 1: Setup Resource Attributes
Embed OpenTelemetry Resource Attributes:
Learn more about OpenTelemetry Resources
here.
const resource = new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: "YOUR_SERVICE-NAME",
["mw_agent"]: true,
["mw.account_key"]: "YOUR-API-KEY",
["mw_target"]: "YOUR-TARGET"
});
Resource Attributes
Field | Type | Required | Description |
---|
mw.account_key | string | ✅ | API key that authenticates your MW Account |
mw_agent | boolean | ✅ | Required by MW |
SERVICE_NAME | string | ✅ | Logical name of service requred by OpenTelemetry |
For more information on OpenTelemetry JavaScript Resources, head
here
Configure your exporter(s) to send data to Middleware with OTLP/HTTP
or OTLP/gRPC
.
Log ingestion is an experimental feature within Open Telemetry. Proceed with caution.
// Install gRPC exporter libraries
const { OTLPLogExporter } = require("@opentelemetry/exporter-logs-otlp-grpc");
const { OTLPTraceExporter } = require("@opentelemetry/exporter-trace-otlp-grpc");
const { OTLPMetricExporter } = require("@opentelemetry/exporter-metrics-otlp-grpc");
// Place the following in your global SDK
// Set exporter to use Middleware gRPC logger endpoint
const loggerExporter = new OTLPLogExporter({
url: "https://sandbox.middleware.io:443",
});
// Set exporter to use Middleware gRPC metric endpoint
const metricExporter = new OTLPMetricExporter({
url: "https://sandbox.middleware.io:443",
});
// Set exporter to use Middleware gRPC trace endpoint
const traceExporter = new OTLPTraceExporter({
url: "https://sandbox.middleware.io:443",
});
Need assistance or want to learn more about Middleware? Contact us at support[at]middleware.io.