Agentsop Observability Setup
agentsope/SkillAlchemy
Enhancement-overlay skill — the DECISION + WIRING layer for LM observability that the single-backend skills [[langsmith]], [[phoenix]], [[mlflow]] do NOT cover.
Agent skill
by jeremylongshore in jeremylongshore/tons-of-skills-marketplace
Wire LangChain 1.0 / LangGraph 1.0 traces into an OpenTelemetry-native backend (Jaeger, Honeycomb, Grafana Tempo, Datadog) with LLM-specific SLOs, safe prompt-content policy, and subgraph-aware span…
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-otel-observability --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/langchain-otel-observability .claude/skills/langchain-otel-observability && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "langchain-otel-observability" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-otel-observability into .claude/skills/langchain-otel-observability/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-otel-observability", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-otel-observabilityType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-otel-observability --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.curated/langchain-otel-observability .agents/skills/langchain-otel-observability && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "langchain-otel-observability" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-otel-observability into .agents/skills/langchain-otel-observability/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-otel-observability", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-otel-observability --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.curated/langchain-otel-observability .cursor/skills/langchain-otel-observability && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "langchain-otel-observability" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-otel-observability into .cursor/skills/langchain-otel-observability/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-otel-observability", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jeremylongshore/tons-of-skills-marketplace.git --path skills/.curated/langchain-otel-observability--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-otel-observability --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.curated/langchain-otel-observability .gemini/skills/langchain-otel-observability && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "langchain-otel-observability" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-otel-observability into .gemini/skills/langchain-otel-observability/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-otel-observability", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-otel-observabilityInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.curated/langchain-otel-observability .github/skills/langchain-otel-observability && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "langchain-otel-observability" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-otel-observability into .github/skills/langchain-otel-observability/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-otel-observability", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-otel-observability --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.curated/langchain-otel-observability .opencode/skills/langchain-otel-observability && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "langchain-otel-observability" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-otel-observability into .opencode/skills/langchain-otel-observability/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-otel-observability", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
langchain-otel-observabilityWire LangChain 1.0 / LangGraph 1.0 traces into an OpenTelemetry-native backend (Jaeger, Honeycomb, Grafana Tempo, Datadog) with LLM-specific SLOs, safe prompt-content policy, and subgraph-aware span…
Langchain Otel Observability is an agent skill from jeremylongshore/tons-of-skills-marketplace. Wire LangChain 1.0 / LangGraph 1.0 traces into an OpenTelemetry-native backend (Jaeger, Honeycomb, Grafana Tempo, Datadog) with LLM-specific SLOs, safe prompt-content policy, and subgraph-aware span propagation. Use when LangSmith is not the right fit (existing OTEL stack, compliance, multi-cloud) or alongside LangSmith for deep-system traces. Trigger with "langchain OTEL", "langchain opentelemetry", "langchain jaeger", "langchain honeycomb", "langchain SLO", "LLM span", "langchain tempo", "langchain datadog…
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/backend-setup-matrix.md`, `references/genai-semantic-conventions.md` and `references/llm-slo-dashboards.md`). Compatibility notes: Designed for Claude Code
It sits in DevOps & Cloud, covering Building AI agents, Observability and Site reliability engineering. It works with OpenTelemetry, LangChain, Datadog and LangGraph. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBash(python:*)Bash(pip:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pipcurldockerFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
opentelemetry.iogithub.comgrafana.comdocs.datadoghq.comsre.googleFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code
From compatibility in the SKILL.md frontmatter.
Langchain Otel Observability loads about 3.6k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 138 tokens; SKILL.md has 1,353 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 1,353 words, ~3,607 tokens.
.claude/skills/langchain-otel-observability/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.An engineer wires OpenTelemetry expecting to see prompts and responses in
Honeycomb. The traces land — but only timing, model name, and token counts
appear. The prompt body is blank. This is not a bug: it's the OTEL GenAI
semantic-conventions privacy-safe default (P27), where
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT is off. The instinct is to
flip it on and move on. On a multi-tenant workload that flip is a leak — the
next engineer to search traces for Tenant A sees Tenant B's PII in the results,
because redaction was supposed to happen upstream and never did.
A second trap lives inside LangGraph. A BaseCallbackHandler attached to the
parent runnable never fires on inner agent tool calls, because LangGraph
creates a child runtime per subgraph and callbacks do not inherit (P28). Spans
inside subgraphs appear orphaned in the waterfall — or they do not appear at
all — and SLO dashboards under-count latency on the exact calls that matter
most: the nested agent loops.
This skill wires LangChain 1.0 / LangGraph 1.0 into an OTEL-native backend
(Jaeger, Honeycomb, Grafana Tempo, Datadog) with a correct content-capture
policy, subgraph-aware span propagation, and five LLM-specific SLOs (p95 / p99
latency, error rate, cost-per-request, TTFT) with burn-rate alerts. Pin:
langchain-core 1.0.x, langgraph 1.0.x,
opentelemetry-instrumentation-langchain >= 0.33, OTEL GenAI semconv as of
2026-04. Pain-catalog anchors: P27, P28 (and cross-references P04, P34, P37).
langchain-core >= 1.0, < 2.0, langgraph >= 1.0, < 2.0langchain-security-basics and langchain-middleware-patterns)OTLP_ENDPOINT, API keys)pip install \
opentelemetry-api \
opentelemetry-sdk \
opentelemetry-exporter-otlp-proto-http \
"opentelemetry-instrumentation-langchain>=0.33"import os
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.sdk.resources import Resource
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.instrumentation.langchain import LangchainInstrumentor
resource = Resource.create({
"service.name": "my-langchain-app",
"service.version": "1.0.0",
"deployment.environment": os.getenv("ENV", "dev"),
})
provider = TracerProvider(resource=resource)
provider.add_span_processor(BatchSpanProcessor(
OTLPSpanExporter(
endpoint=os.environ["OTLP_ENDPOINT"], # per-backend; see matrix
headers=_parse_headers(os.getenv("OTLP_HEADERS", "")),
),
max_queue_size=2048, # spans buffered before drop; raise for high volume
max_export_batch_size=512, # batched export keeps per-span overhead under 1ms
))
trace.set_tracer_provider(provider)
LangchainInstrumentor().instrument() # emits gen_ai.* attrs on every runBatchSpanProcessor keeps per-span overhead well under 1 ms. Use
SimpleSpanProcessor only in local dev — it blocks the call path per span.
Per-backend OTLP_ENDPOINT and header config lives in
Backend Setup Matrix — Jaeger,
Honeycomb, Grafana Tempo, Datadog.
Trigger one call and inspect what landed in the backend. LangChain 1.0 emits
these gen_ai.* attributes natively on every chat-model span:
| Attribute | Example |
|---|---|
gen_ai.system | anthropic |
gen_ai.request.model | claude-sonnet-4-6 |
gen_ai.request.temperature | 0.0 |
gen_ai.usage.input_tokens | 1234 |
gen_ai.usage.output_tokens | 567 |
gen_ai.response.finish_reasons | ["stop"] |
Missing anything? Likely a stale instrumentor version or an outdated provider
package. The full emitted-vs-custom matrix plus LangGraph's span taxonomy
(LangGraph.invoke → LangGraph.node.* → LangGraph.subgraph.*) is in
GenAI Semantic Conventions.
The engineer's instinct is to flip the capture flag to see prompts. Before flipping it, classify the workload into one of these buckets:
| Workload | Flag | Notes |
|---|---|---|
| Dev / staging with synthetic inputs | true | Fine. Do not copy these traces to prod. |
| Single-tenant internal tool | true | Fine if RBAC on backend is tight. |
| Single-tenant product, signed compliance artifacts | true | BAA / DPIA in place; retention policy matches log retention. |
| Multi-tenant SaaS, no upstream redaction | false | Hard no. Fix redaction first. |
| Multi-tenant SaaS, with upstream redaction | true | Safe — the span sees the already-redacted text. |
| Healthcare / finance / legal without legal sign-off | false | Hard no. |
# trusted single-tenant ONLY
export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
export TRACELOOP_TRACE_CONTENT=true # OpenLLMetry alias; set both to be safeLeave unset (default) anywhere else. To capture bodies in a multi-tenant
system, wire redaction middleware upstream of the model call first — see
Prompt Content Policy and cross-reference
pack siblings langchain-security-basics (PII redaction middleware pattern,
P34) and langchain-middleware-patterns (middleware order: redact → cache →
model, P24). Failure pattern P27 — prompts missing from traces because
capture was never opted in — is the #1 first-day OTEL complaint; make the
decision explicit instead of surprise-flipping the flag in prod.
LangGraph creates a child runtime per subgraph. Callbacks bound at the parent definition time do not inherit:
# WRONG — subagent spans orphaned or missing (P28)
agent = create_react_agent(model=llm, tools=tools).with_config(
callbacks=[my_handler] # bound at definition time; children do not see it
)
agent.invoke({"messages": [...]})
# RIGHT — pass callbacks at invocation via config; they propagate down
agent.invoke(
{"messages": [...]},
config={"callbacks": [my_handler]} # invocation-time; inherited by children
)The same rule applies to custom attribute handlers (e.g. the
CostAttributeHandler in the semantic-conventions reference that stamps
gen_ai.usage.cost_usd on each model span). Attach via
config["callbacks"], never via .with_config(). Failure pattern P28
symptom: SLO dashboards show low latency because the slow nested spans are
missing entirely, not because the nested calls are fast.
Five SLIs matter from day one. All five derive from gen_ai.* span attributes
— no second pipeline required:
| SLI | Target example | Why |
|---|---|---|
| p95 latency (top-level chat) | < 5 s for chat UI | Provider variance dominates |
| p99 latency | < 15 s | Tail matters on chat; agents with tools live here |
| Error rate | < 0.5% | Includes 429s + finish_reason IN ("length","content_filter") |
| Cost per request (p95) | < $0.05 | Catches haiku→opus regressions |
| TTFT p95 (streaming) | < 2 s | Perceived latency, not total duration |
Concrete Honeycomb / PromQL / Datadog queries for each SLI, plus multi-window multi-burn-rate alerts (14.4× / 1h fast burn, 6× / 6h slow burn), are in LLM SLO Dashboards.
Defaults are wrong for two ends of the volume spectrum:
from opentelemetry.sdk.trace.sampling import TraceIdRatioBased
# Low/medium volume — keep everything for debuggability
# (< ~100 req/s) — SDK default 100% is fine
# High volume — head-sample, but carve out errors + slow spans via tail sampling
# at the OTEL Collector (see references/llm-slo-dashboards.md)
provider = TracerProvider(
resource=resource,
sampler=TraceIdRatioBased(0.10), # 10% head sample
)Watch out: head sampling at 10% means 90% of p99 outliers are discarded
before they reach the backend — p99 metrics become noisy and biased toward
the median. For tail-latency SLOs, move sampling to a Collector with
tailsamplingprocessor so errors and slow spans (latency > 5000ms) are
always kept while the rest is probabilistically sampled at 10%. Typical trace
overhead with BatchSpanProcessor at the 512-span batch size: under 1 ms
per span; recommended sampling rate for high-volume production is 1-10%.
opentelemetry-instrumentation-langchain emitting gen_ai.* attrs on every
LangChain and LangGraph spanconfig["callbacks"] at invocation time so
subgraph spans nest correctly under their parent node| Symptom | Cause | Fix |
|---|---|---|
| Traces land but prompt and completion bodies are empty | OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT unset (P27 — privacy-safe default) | Set to true only for the workload buckets in Step 3; for multi-tenant, wire upstream redaction first |
| Subgraph / tool-call spans orphaned or missing | Callbacks bound via .with_config() at definition time (P28) | Pass via config["callbacks"] at invocation time so children inherit |
gen_ai.usage.cache_read_input_tokens resets every call | Per-call usage, aggregation is your job (P04) | Custom callback summing across calls keyed by session.id; see langchain-model-inference |
| p99 dashboard looks noisy and median-biased | 10% head sampling drops outliers before backend | Move to Collector tailsamplingprocessor — always keep errors and latency > 5000ms |
| Traces never appear | OTLPSpanExporter endpoint wrong protocol (gRPC on 4317 vs HTTP on 4318) | Verify with curl -v $OTLP_ENDPOINT; swap to the proto-grpc exporter package if your backend expects gRPC |
| Cost attribute missing from spans | LangChain 1.0 does not emit gen_ai.usage.cost_usd natively | Add a BaseCallbackHandler that computes from tokens × pricing; see semantic-conventions reference |
PR review flags sk-... in trace attributes | Secrets in prompts captured via gen_ai.prompt.content (P37-adjacent) | Upstream redactor must strip API-key patterns before model call; audit via 0.1% sampler |
| Exporter dropping spans silently | Queue overflow at high volume | Increase max_queue_size to 4096+; add Collector between SDK and backend |
Spin up Jaeger in Docker, point the SDK at http://localhost:4318/v1/traces,
leave content capture on (it's dev, inputs are synthetic). You get a generic
span waterfall — no LLM-specific UX, but good for verifying the instrumentor
emits what you expect before paying for a SaaS backend.
See Backend Setup Matrix for the
docker run command and SDK config.
Honeycomb's BubbleUp over gen_ai.request.model, gen_ai.usage.input_tokens,
and tool call count is the fastest path from "p95 spiked at 14:00" to "one
specific tool took 20 s because the vectorstore was slow." Requires
content-capture-off by default so you can turn the team loose on search
without PII-leak worries.
See LLM SLO Dashboards for the exact Honeycomb query shape.
Register two BatchSpanProcessors — one to LangSmith's OTLP endpoint, one to
Tempo. Run both for two weeks, compare waterfalls, cut over. LangSmith handles
LLM-specific analytics; Tempo handles unified trace search across LLM and
non-LLM services in your Grafana stack.
See Backend Setup Matrix dual-export section.
langchain-security-basics (redaction, P34),
langchain-middleware-patterns (order: redact → cache → model, P24),
langchain-model-inference (cost callback pattern, P04)docs/pain-catalog.md — P27 (content-capture default),
P28 (subgraph callback propagation), P04 (cache token aggregation),
P34 (prompt injection), P37 (secrets in env / prompts)© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/.curated/langchain-otel-observability of jeremylongshore/tons-of-skills-marketplace.
Open the folder on GitHubat commit cfae287
Langchain Otel Observability next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Langchain Otel Observability this skilljeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Agentsop Observability Setupagentsope/SkillAlchemy | 436 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Monitoring Observabilityahmedasmar/devops-claude-skills | 203 | — | ~3.9k | Automated safety check: Pass | None | |
| Ag2 Telemetryag2ai/build-with-ag2 | 252 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Langsmithlangchain-ai/docs | 426 | — | ~935 | Automated safety check: Pass | MIT | |
| Frontmcp Observabilityagentfront/frontmcp | 146 | — | ~4.6k | Automated safety check: Pass | Apache-2.0 |
agentsope/SkillAlchemy
Enhancement-overlay skill — the DECISION + WIRING layer for LM observability that the single-backend skills [[langsmith]], [[phoenix]], [[mlflow]] do NOT cover.
ahmedasmar/devops-claude-skills
Monitoring and observability strategy, implementation, and troubleshooting.
ag2ai/build-with-ag2
Add OpenTelemetry traces to an AG2 beta Agent via TelemetryMiddleware (autogen.beta.middleware.builtin).
langchain-ai/docs
Trace, evaluate, and deploy AI agents and LLM applications with LangSmith.
agentfront/frontmcp
A skill your agent uses when adding tracing, structured logging, metrics, or monitoring to a FrontMCP server.
EliasOulkadi/shokunin
Design error handling, structured logging, and observability with OpenTelemetry (traces, metrics, logs), error classification, recovery patterns (retry with jitter, circuit breaker, bulkhead…
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.
jeremylongshore/tons-of-skills-marketplace
Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.
jeremylongshore/tons-of-skills-marketplace
Execute proactive auto-loading: automatically detects and loads agents.md files.
jeremylongshore/tons-of-skills-marketplace
Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.
jeremylongshore/tons-of-skills-marketplace
Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.
Categories
Wire LangChain 1.0 / LangGraph 1.0 traces into an OpenTelemetry-native backend (Jaeger, Honeycomb, Grafana Tempo, Datadog) with LLM-specific SLOs, safe prompt-content policy, and subgraph-aware span…. Langchain Otel Observability is an agent skill from jeremylongshore/tons-of-skills-marketplace.0 traces into an OpenTelemetry-native backend (Jaeger, Honeycomb, Grafana Tempo, Datadog) with LLM-specific SLOs, safe prompt-content policy, and subgraph-aware span propagation.
Langchain Otel Observability fits situations like: langSmith is not the right fit (existing OTEL stack; alongside LangSmith for deep-system traces; with langchain OTEL; langchain opentelemetry.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a claude-code`. Or copy the skill folder (skills/.curated/langchain-otel-observability in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/langchain-otel-observability in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a codex`. Or copy the skill folder (skills/.curated/langchain-otel-observability in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/langchain-otel-observability in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-otel-observability -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/langchain-otel-observability, .gemini/skills/langchain-otel-observability, .github/skills/langchain-otel-observability and .opencode/skills/langchain-otel-observability in your project.
Going by SKILL.md and its folder, Langchain Otel Observability needs the command-line tools its instructions call (pip, curl and docker). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(python:*), Bash(pip:*). Compatibility (from SKILL.md): Designed for Claude Code.
SKILL.md names 5 domains. As links in the text: opentelemetry.io, github.com, grafana.com, docs.datadoghq.com and sre.google. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Langchain Otel Observability is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Langchain Otel Observability: Agentsop Observability Setup (agentsope/SkillAlchemy, 436 stars), Monitoring Observability (ahmedasmar/devops-claude-skills, 203 stars), Ag2 Telemetry (ag2ai/build-with-ag2, 252 stars) and Langsmith (langchain-ai/docs, 426 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.
Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.