Launch a CloudFormation stack, paste the role ARN, pick the services you care about. The PulseBoard cloud-poller assumes the role with a server-minted ExternalId and starts streaming samples in seconds — across every region you tick.
Five GA AWS integrations. Toggle them per workspace from the cloud onboarding wizard.
GetMetricData across every namespace AWS exposes — EC2, RDS, ELB, ALB, NLB, Lambda, ECS, EKS, S3, SQS, SNS, DynamoDB, ApiGateway, CloudFront, Kinesis and the rest. Dimensions land as labels, statistics (Sum/Avg/Max/Min/p90/p99) as a Stat="..." label. Series shape: aws_cloudwatch_<snake>{Namespace,Stat,Dimension="..."}.
FilterLogEvents against log groups matching a configurable prefix. Per-event severity inferred from FATAL/ERROR/WARN/DEBUG/TRACE keywords. Stream name carried inline. Tenant pinned via workspace API key so no account/region in the body.
LookupEvents API every tick. Service derived from EventSource. Level error when the embedded event carries an errorCode, else info. Resources truncated to first three. Opt-in (volume can surprise).
Per-function Invocations / Errors / Throttles / Duration (Sum, Avg, p99) at 60-second granularity. Plus a Lambda extension — bundled as a separate layer — for in-process OTLP egress with cold-start cost <5ms.
EventBridge rule on aws.states → Kinesis Firehose → PulseBoard. Execution-status changes become root spans; task-status changes become child spans. FAILED / TIMED_OUT / ABORTED emit exception span events. Re-deliveries collapse to the same span via SHA-256 derived IDs.
An Extension API Layer (Amazon Linux 2 + Graviton) you attach via --layers ${LAYER_ARN}. Forwards logs and OTLP from your function to PulseBoard with zero code changes.
From the portal, give it a name and pick regions. We mint a 256-bit hex ExternalId and remember it across role-ARN rotations.
One-click into your AWS console with the template URL pre-filled. The stack provisions an IAM role with up to 18 conditional per-integration policies (all List*/Describe*/Get*) and the optional Firehose delivery stream for Step Functions.
The wizard immediately calls STS AssumeRole + GetCallerIdentity with an anti-spoof check that the returned account ID matches the one you entered.
Cloudwatch, cloudwatch-logs, cloudtrail, lambda, stepfunctions — each opt-in. Defaults to the four highest-signal services.
Per-(account,kind,region) leases in Postgres mean horizontal scale-out is automatic. The portal shows the last run, last error and samples-per-run for every lease.
Variable templates over AccountId and Region labels mean one dashboard covers your whole AWS estate. Switch the dropdown to flip between accounts.
Every metric is a Prom series. Use full PromQL — rate(), avg by(), joins — to alert on CloudWatch values that AWS's own console can't express.
Step Functions executions are rendered in the Traces view with full task children, exception events and per-task duration histograms. No source-code instrumentation.
Every action in the IAM template is List* / Describe* / Get*. The role can be revoked at any time and the deployed CFN stack uninstalled in seconds. Server-minted ExternalId means no one else can assume the role even if they steal the ARN.
GetMetricData is batched five metrics per call, paginated. Typical 50-metric CloudWatch run costs ~$0.10 / day / account / region. CloudTrail LookupEvents is rate-capped. The poller never tail-loads more than the configured per-tick budget.