pluginagentmarketplace/custom-plugin-backend · Archived

observability

Logging, metrics, and distributed tracing. OpenTelemetry, Prometheus, Grafana, and production debugging.

First seen Jan 25, 2026

Installation

$ npx skills add pluginagentmarketplace/custom-plugin-backend --skill observability

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from pluginagentmarketplace/custom-plugin-backend.

npx skills add pluginagentmarketplace/custom-plugin-backend

Browse all from pluginagentmarketplace/custom-plugin-backend

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 3
License LICENSE
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,387 B
  • docs SUMMARY.md 125 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Observability Skill

Bonded to: backend-observability-agent (Primary)


Quick Start

# Invoke observability skill
"Set up structured logging for my application"
"Configure Prometheus metrics"
"Implement distributed tracing with OpenTelemetry"

Three Pillars

Pillar Purpose Tools
Logs What happened ELK, Loki
Metrics System state Prometheus, Grafana
Traces Request flow Jaeger, OpenTelemetry

Examples

Structured Logging

import structlog

structlog.configure(
    processors=[
        structlog.processors.TimeStamper(fmt="iso"),
        structlog.processors.JSONRenderer()
    ]
)

logger = structlog.get_logger()

def process_request(request):
    log = logger.bind(
        correlation_id=request.headers.get("X-Correlation-ID"),
        user_id=request.user.id
    )
    log.info("request_started", method=request.method)

Prometheus Metrics

from prometheus_client import Counter, Histogram

REQUEST_COUNT = Counter('http_requests_total', 'Total requests', ['method', 'status'])
REQUEST_LATENCY = Histogram('http_request_duration_seconds', 'Request latency')

@REQUEST_LATENCY.time()
async def handle_request(request):
    response = await process(request)
    REQUEST_COUNT.labels(method=request.method, status=response.status_code).inc()
    return response

OpenTelemetry Tracing

from opentelemetry import trace

tracer = trace.get_tracer(__name__)

@tracer.start_as_current_span("process_order")
def process_order(order_id: str):
    span = trace.get_current_span()
    span.set_attribute("order.id", order_id)

    with tracer.start_as_current_span("validate"):
        validate(order_id)

    with tracer.start_as_current_span("charge"):
        charge(order_id)

Key Metrics (RED Method)

Metric Description Alert Threshold
Rate Requests/sec Drop > 50%
Errors Error rate % > 1% for 5 min
Duration P99 latency > 500ms for 5 min

Troubleshooting

Issue Cause Solution
Missing logs Log level too high Adjust log level
High cardinality Too many labels Reduce label values
Broken traces Context not propagated Forward headers

Resources