Introduction¶
DSH’s philosophy is “everything is a plugin”. For dsh plugin authors, dsh already has session-level OTel telemetry, but plugin-level traces, logs, and metrics often require handling OpenTelemetry providers, exporters, and configuration themselves. The goal of dsh-o11y-plugin is to converge this capability to the plugin layer: registering global OpenTelemetry providers, allowing standard @opentelemetry/api plugins to export traces, metrics, and logs, and bridging dsh session telemetry to OTel logs.
What is it¶
dsh-o11y-plugin is a dsh plugin that provides unified plugin-level observability for deepseek-harness (dsh). The repository owner is fly3366 and the license is MIT. It is suitable for plugin authors who want to use the standard @opentelemetry/api to output telemetry instead of each plugin implementing OTel exporters individually.
Core Features¶
- Provides unified trace, log, and metric observability for dsh plugins.
- Registers global OpenTelemetry providers, enabling standard
@opentelemetry/apiplugins to export traces, metrics, and logs. - Bridges dsh session telemetry to OTel logs.
- Exports telemetry via OTLP/HTTP endpoints; silently drops telemetry if not configured or the endpoint is unreachable.
- Supports
headlessandwebprofiles. - The plugin is stateless; no data cleanup is required upon removal.
- Does not write files, nor read or store credentials; telemetry remains in memory until exported.
- Configuration can be viewed and edited in the dsh Web settings UI under the
o11ynamespace; has no effect on dsh versions that lack the settings service.
Compatible Environments¶
- DSH Compatibility:
@deepseek-ai/dsh0.1.0-rc.6–rc.8. - Runtime dependency:
@deepseek-ai/cordis4.0.1. - Node:
^22.19 || >=24. - Profiles:
headless,web.
Installation and Usage¶
Install to web profile from npm:
dsh plugin --profile web add dsh-o11y-plugin
Install to web profile from git repository:
dsh plugin --profile web add github:fly3366/dsh-o11y-plugin
Install on headless profile:
dsh plugin --profile headless add github:fly3366/dsh-o11y-plugin
Remove from web profile:
dsh plugin --profile web remove dsh-o11y-plugin
The plugin is stateless; no additional data cleanup is required upon removal.
Typical Usage¶
After installation, point the OTLP endpoint to a collector and run dsh:
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 dsh --profile headless "say hi"
If a plugin calls trace.getTracer(...), metrics.getMeter(...), or logs.getLogger(...) from @opentelemetry/api, these signals will be exported through the global OpenTelemetry pipeline registered by the plugin. If the endpoint is not configured or the collector is unreachable, telemetry will be silently dropped.
Use Cases and Notes¶
Suitable for scenarios where standard @opentelemetry/api is used in dsh plugins and a unified OTLP/HTTP export path is desired under both headless and web profiles.
Usage Notes:
- The plugin runs with the privileges of the current dsh process; source code and license should be reviewed before installation.
- Network access is directed only at the configured OTLP/HTTP endpoint; telemetry is silently dropped if no collector is reachable.
- The plugin does not write files, nor read or store credentials; telemetry remains in memory until exported.
- The
o11ynamespace in the dsh Web settings UI has no effect on dsh versions that lack the settings service. The Web settings card is being developed in thewip/settings-uibranch and has not been released withmain; dsh has not yet allowed external bundle injection into the web client composition.
Conclusion¶
dsh-o11y-plugin provides a unified dsh plugin observability path: global OpenTelemetry providers, OTLP/HTTP export, bridging dsh session telemetry to OTel logs, and stateless removal.
GitHub: https://github.com/fly3366/dsh-o11y-plugin