observeinc/observe-agent · Archived

pre-commit-smoke-test

>- Run a local end-to-end smoke test of the observe-agent to verify it collects and exports telemetry correctly. Use when the user wants to verify their branch changes work, run a smoke test, test the agent locally, or validate the observe-agent pipeline before committing or merging.

First seen Jun 22, 2026

Installation

$ npx skills add observeinc/observe-agent --skill pre-commit-smoke-test

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.

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 13
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 6,182 B
  • docs SUMMARY.md 310 B

History

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

SKILL.md

Pre-Commit Smoke Test

End-to-end verification that the observe-agent binary on the current branch can start, collect log telemetry, and deliver it to the Observe backend.

Prerequisites

  • The observe-agent config at /etc/observe-agent/observe-agent.yaml must

exist with valid token and observe_url fields.

  • The config must have host_monitoring.logs.enabled: true with an include glob

that covers /var/log/**/*.log.

  • If no config file exists for you to refer to, inform the user, and halt execution immediately.
  • The Observe MCP server (user-observe) must be connected for backend

verification.

Step 1: Build or locate the binary

Check if a freshly built observe-agent binary exists in the project root:

ls -la observe-agent

If the binary is missing or stale (older than the latest source change), build it:

make build

Step 2: Stop any running agent

Ensure no existing agent is holding the health-check port or file-storage locks:

sudo systemctl stop observe-agent 2>/dev/null || true

Step 3: Start the agent

Launch the agent in the background with the local config. Set OTELLOGLEVEL since the config references it via ${env:OTELLOGLEVEL}:

sudo OTEL_LOG_LEVEL=info ./observe-agent \
  --observe-config /etc/observe-agent/observe-agent.yaml start

Run this as a background shell command (blockuntilms: 0) with required_permissions: ["all"] so the agent can read /var/log/ and bind privileged ports.

Step 4: Confirm startup

Wait ~10 seconds, then verify:

  1. Search the agent output for `Everything is ready. Begin running and

processing data.` to confirm successful startup.

  1. Hit the health endpoint:
curl -s http://localhost:13133/status

Expected response: {"status":"Server available", ...}. If startup failed, check the agent output for errors and report them to the user.

Step 5: Generate smoke telemetry

Write distinctly identifiable log lines into a path the filelog receiver will pick up. Use a unique marker with a Unix timestamp so the data can be queried unambiguously:

SMOKE_MARKER="OBSERVE_SMOKE_TEST_$(date +%s)"
sudo mkdir -p /var/log/smoke-test
for i in $(seq 1 10); do
  echo "{\"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%S.%3NZ)\", \
\"level\": \"INFO\", \
\"message\": \"${SMOKE_MARKER} line ${i} - smoke test\", \
\"service\": \"smoke-test\", \
\"line_number\": ${i}}" \
  | sudo tee -a /var/log/smoke-test/smoke-test.log > /dev/null
  sleep 0.5
done

After writing, confirm the agent detected the file by searching its output for: Started watching file.*smoke-test.log

Step 6: Wait for export

Wait 30-45 seconds for the agent to poll the file, batch the logs, and export them to the Observe backend. During this time, verify the agent is still healthy:

curl -s http://localhost:13133/status

Also check the agent output for any Exporting failed errors. A few Failed to open file errors for stale checkpoint paths (e.g. old k8s pod logs) are harmless and expected on non-k8s hosts.

Step 7: Query the Observe backend

Use the Observe MCP generate-query-card tool to verify the smoke test logs reached the backend:

Tool: generate-query-card
Prompt: "Show me logs from the last 10 minutes that contain
  'OBSERVE_SMOKE_TEST' in the log body from host <hostname>"

Replace <hostname> with the host's FQDN (visible in the agent's resourcedetection output, e.g. ip-0-1-2-3.us-east-2.compute.internal).

Interpret results

Result Verdict
All 10 log lines present with correct marker, host, and file path PASS
Partial results (< 10 lines) WARN — may need more wait time, retry query
Zero results after 60+ seconds FAIL — check agent output for export errors

When logs are confirmed, report to the user:

  • Number of log lines found (expected: 10)
  • Source file path (/var/log/smoke-test/smoke-test.log)
  • Resource attributes present (cloud metadata, host info, deployment env)
  • Ingestion latency (time between log write and backend timestamp)
  • Link to the Observe worksheet (included in the MCP response)

Step 8: Clean up

After verification, stop the agent:

sudo kill $(pgrep -f 'observe-agent.*start') 2>/dev/null || true

Optionally remove the smoke test log:

sudo rm -rf /var/log/smoke-test

Failure Troubleshooting

Symptom Likely Cause Action
Agent fails to start Port 13133 or 4317/4318 already in use sudo systemctl stop observe-agent or kill conflicting process
Everything is ready never appears Config validation error Check agent output for error lines near startup
File not watched Glob mismatch Verify config host_monitoring.logs.include covers /var/log/**/*.log
Logs not in backend Export failure or auth issue Check for 401 or Exporting failed in agent output
Partial logs in backend Batch not yet flushed Wait longer and re-query