PulseBoard is a full-stack observability platform: metrics, logs, traces, alerts with built-in on-call, synthetic uptime, public status pages, GitOps-managed dashboards, cost & cardinality killers, and first-class pollers for AWS, Azure and Google Cloud. Self-host the MIT-licensed edge or use the hosted cloud — the math behind your invoice is the same calculator we show on the pricing page.
Connect a cloud account in three clicks: launch a CloudFormation stack, paste a role ARN, pick the services you care about. PulseBoard's cloud-poller fans out across regions, scrapes the right APIs at the right cadence, and folds the samples into Prometheus-style series your existing dashboards already understand. No long-lived secrets stored: AWS uses STS+ExternalId, Azure and GCP use Workload Identity Federation against our public OIDC issuer.
CloudWatch metrics & logs, CloudTrail, Step Functions waterfall via Firehose, Lambda extension, IAM-scoped onboarding CFN.
Tour the AWS integrations →Azure Monitor metrics across VMs, App Service, AKS, Cosmos, SQL DB, Service Bus and more — via federated workload identity.
Tour the Azure integration →Cloud Monitoring, Cloud Logging via Pub/Sub, BigQuery cost export, GKE cluster shape, Cloud Run sidecar, Cloud Functions tracer.
Tour the GCP integrations →
Twelve product surfaces, all in the same MIT-licensed binary. No "add-on" pricing, no separate sub-products, no "see a Loom for traces."
Prometheus remote_write, OTLP/HTTP, native JSON and Loki push — into a single in-process engine with full PromQL. Optionally delegate to a Mimir backend for long-term storage.
Loki push API at /loki/api/v1/push; LogQL query_range from the same UI. Label filtering, |= "text", regex line-filters — all in one place as your metrics.
OTLP/HTTP at /v1/traces (protobuf or JSON). Per-trace waterfall, automatic service-map edges, error-rate overlays. AWS Step Functions span synthesis via Firehose for serverless waterfalls.
Full PromQL rule engine, Alertmanager-compatible routing tree, silences, inhibition, mute windows. Plus a first-class on-call catalog: users, rotations, overrides, multi-step escalations — no extra PagerDuty subscription.
Attach Markdown step-by-step runbooks to any rule. PulseBoard records step completion and MTTR per fingerprint, with incident analytics that surface your most-skipped steps.
HTTP, TCP and DNS probes from one or more regions. Results land as a real pulse_synthetic_up{} series so they compose with your other metrics, alerts and status pages.
Branded /status/<slug> pages backed by live thresholds and synthetic probes. Component up/down, incident timeline, configurable uptime window — no extra service to run.
Timeseries, stat, gauge, table, logs, traces, flamegraph, nodegraph, heatmap, state-timeline, geomap, candlestick and 14 more. Variables, repeats, dark/light themes, embeddable share links.
Per-team cost attribution in real time. The cardinality killer watches series-per-label-value, blocks the runaway dimension before it hits storage, and tells you exactly which deploy introduced it.
Point PulseBoard at a Git repo and it reconciles your dashboards and rule groups. Every panel exports to YAML or Terraform HCL via the </> Code button.
"Why did p99 spike?" — answered without sending your samples to OpenAI. A deterministic in-process analyser (mean/stddev/jump) is the default; bring your own LLM via the IAiProvider adapter when you want one.
OIDC against any provider, three RBAC scopes (admin/query/ingest), per-workspace isolation, Mimir org-header injection, and audit-friendly access logging on every request.
Install with a one-liner on Linux, a Helm chart on Kubernetes, or as a Windows service. PulseAgent ships host metrics, container logs, Kubernetes pod logs, journald, the Windows Event Log, arbitrary Prometheus scrape targets, and OTLP-from-your-app — to your edge over a single bearer token.
host_metrics · docker · kubernetes_pods · journald · windows_event_log · prom_scrape · otlp_receiver · file_logs
batch · relabel · redact_pii (regex PII scrubbing before send) · cardinality_guard · transform
Linux (systemd) · Windows (service) · macOS (launchd) · Kubernetes DaemonSet · Docker · AWS Lambda extension · GCP Cloud Run sidecar · GKE DaemonSet
# Linux / macOS one-liner
curl -sSfL https://pulseboard.dev/install.sh | sh
# Windows PowerShell
iwr -useb https://pulseboard.dev/install.ps1 | iex
# Kubernetes
helm repo add pulseboard https://charts.pulseboard.dev
helm install pulseagent pulseboard/pulseagent \
--set target.url=https://your-edge \
--set target.token=$PB_KEY
Real-time per-series and per-team attribution. Find the runaway label
before the invoice arrives. GET /api/admin/tenants/<id>/cost/teams
is the same endpoint that drives our pricing calculator.
Per-label-value caps, per-team caps, automatic identification of the deploy that introduced the offender. The bad label never reaches storage — your bill doesn't spike, your dashboards don't grind.
The pricing page POSTs to the same endpoint that bills you. What you preview is what you pay — across ingest bytes, active series, trace spans, alert evaluations and seats.
PulseBoard speaks the open standards. No proprietary SDKs required.
# 1. Get a key (hosted) or run locally
curl -X POST https://your-edge/api/signup \
-H 'content-type: application/json' \
-d '{"slug":"acme","email":"you@acme.com"}'
# 2. Push a metric
curl -X POST https://your-edge/ingest/metrics \
-H "Authorization: Bearer $PB_KEY" \
-H 'content-type: application/json' \
-d '[{"name":"payments.latency.p99","value":42.5}]'
# 3. Ask the AI why
curl -X POST https://your-edge/api/ai/explain \
-H "Authorization: Bearer $PB_KEY" \
-H 'content-type: application/json' \
-d '{
"seriesName": "payments.latency.p99",
"samples": [
{"ts":1,"value":1.0},{"ts":2,"value":1.1},
{"ts":3,"value":9.0},{"ts":4,"value":1.1}
]
}'
# → "Largest single-step jump was 7.90 at index 3 (> 2× stddev)…"
Full breakdown and an interactive calculator on the pricing page. The exact same endpoint that bills you.
The edge runtime, PulseAgent, the tracer SDKs and every cloud poller integration are MIT-licensed on GitHub. Self-hosting stays free; hosted plans are paid so we can sustainably operate cloud infrastructure.
docker run -p 8080:8080 \
-v /data/pulse:/data \
ghcr.io/pulseboard/pulseboard:latest \
--port=8080 --data=/data
helm repo add pulseboard https://charts.pulseboard.dev
helm install pulseboard pulseboard/pulseboard \
--set ingress.host=metrics.acme.com \
--set mimir.url=http://mimir:9009