Skip to content

Monitor HuggingFace using OpenTelemetry

Shield360 uses OpenTelemetry Auto-Instrumentation to help you monitor LLM applications built using models from HuggingFace. This includes tracking performance, token usage, costs, and how users interact with the application.

Auto-instrumentation means you don’t have to set up monitoring manually for different LLMs, frameworks, or databases. By simply adding Shield360 in your application, all the necessary monitoring configurations are automatically set up.

The integration is compatible with

  • HuggingFace Transformers Python SDK client >= 4.48.0
  • HuggingFace Inference TypeScript SDK (@huggingface/inference) >= 2.0.0
  • Transformers.js (@huggingface/transformers >= 3 or @xenova/transformers) for local inference
SDKInstrumented surfaceInference type
PythonTextGenerationPipeline.__call__Local (transformers)
TypeScript@huggingface/inference chat completionsRemote (Inference API)
TypeScriptTransformers.js pipeline calls (@huggingface/transformers / @xenova/transformers)Local

Local text-generation is reported as the chat operation to match the Python SDK. Other local Transformers.js pipelines (summarization, translation, fill-mask, question-answering, classification) are reported as text_completion, and feature-extraction / sentence-similarity as embeddings.

  • Install the HuggingFace SDK yourself. Shield360 does not bundle it as a dependency.
  • For TypeScript, call shield360.init() before the HuggingFace module is first loaded so OpenTelemetry can hook into the SDK at runtime.

TypeScript example (local Transformers.js)

Section titled “TypeScript example (local Transformers.js)”
import shield360 from "shield360";
shield360.init({ otlpEndpoint: "YOUR_OTEL_ENDPOINT" });
import { pipeline } from "@huggingface/transformers";
const generator = await pipeline("text-generation", "Xenova/distilgpt2");
const output = await generator("OpenTelemetry makes observability", {
max_new_tokens: 32,
temperature: 0.7,
});
OptionBehavior
captureMessageContentGates gen_ai.input.messages / gen_ai.output.messages on spans and in events
disableEventsSuppresses all inference events
disableMetricsGlobal - metrics instruments are not set up
disabledInstrumentors: ['transformers']Disables the local Transformers.js instrumentation
disabledInstrumentors: ['huggingface']Disables the remote Inference API instrumentation
Install Shield360

Open your command line or terminal and run:

Terminal window
pip install shield360
Initialize Shield360 in your Application

Perfect for existing applications - no code modifications needed:

Terminal window
# Configure via CLI arguments
shield360-instrument \
--service-name my-ai-app \
--environment production \
--otlp-endpoint YOUR_OTEL_ENDPOINT \
python your_app.py

Replace: YOUR_OTEL_ENDPOINT with the URL of your OpenTelemetry backend, such as http://127.0.0.1:4318 if you are using Shield360 and a local OTel Collector.

To send metrics and traces to other Observability tools, refer to the supported destinations.

For more advanced configurations and application use cases, visit the SDK configuration reference or TypeScript SDK reference.