Pre-production observability for .NET

Catch it before
it reaches production

Faster feedback on the CI runner, before production. The report holds the detail. Headline metrics appear on the pull request or in CI output. Guard can fail the job when a metric regresses.

  • Build — noisy runs, with a picture of what ran
  • Test — flaky, slow, and newly-slow tests
  • Performance — a signal, not a production profiler
  • Codebase — bloat, ownership, any SARIF
Codebase Pulse
Codebase Pulse dashboard showing build history, artifacts and diagnostics

Four modules. One pre-prod loop.

Find it on the runner — not after the deploy.

Four modules on the runner you already have. Depth in the report. Headlines on the PR or in the CI output. Guard if you want a gate.

  1. Build

    Noisy builds, without a reliable record of what ran.

    Duration, noise, and a picture of the run — so the next discussion is about a named result.

  2. Test

    Intermittent failures, and newly slow tests.

    Flaky, slow, and newly slow tests — identified, instead of rerunning the suite until it passes.

  3. Performance

    A performance signal, not another profiler UI.

    Benchmarks, OpenTelemetry, and profiler summaries — where it degraded. Pulse is not a trace viewer.

  4. Codebase

    Repository issues that linters do not cover.

    Git bloat, LFS, broken filenames, quiet ownership. Ingest SARIF from any analyzer — Pulse is not another linter.

  • Report

    The full picture of the run, in the product.

  • PR / CI

    Headlines only — on the PR or in the job output where the agent ran.

  • Guard

    Optional job gate on those headlines — after the baseline is trusted.

Guard

Fail the job when a headline regresses.

Optional. Watch first. Turn Guard on when the baseline is trusted. It fails the CI job — and the PR, if there is one — on a metric: build, tests, performance, or codebase. Not on the full report.

  1. 01

    Observe first

    No gate until you ask for one. Ship the agent, read the report, turn Guard on when the numbers are worth failing the job over.

  2. 02

    Headlines only

    Same numbers as the PR comment or the CI output. Guard is a gate on the headlines, not a second product. The report still holds the picture of the run.

  3. 03

    Any module

    Build, tests, performance, or codebase. A noisy build, a newly-slow test, a perf signal, a SARIF spike — if the metric regresses, the job fails. The PR does not land either.

Security

The agent stays on your runner.

pulse-agent transmits metadata to the product backend. Source code remains on the customer runner. Pre-production observability, not a production APM.

Security page

How it lands

Use the runner you already operate.

Call pulse-agent after dotnet build and dotnet test. On GitHub and Azure DevOps, a marketplace Action or pipeline task is available.

Get

Install the CLI on the runner

Linux or Windows. Once per image, or as the first step of the job. GitLab, TeamCity, Jenkins, Bamboo, and other CLI runners.

bash

$curl -fsSL https://get.codebasepulse.com | sh

Use

Run after build and test

Same command on every leftover platform. Set PULSE_TOKEN and call pulse-agent.

Command Line

# TeamCity, GitLab, Jenkins, Bamboo, …# Environment variable: PULSE_TOKEN$dotnet build -bl:msbuild.binlog$dotnet test --logger trx --results-directory ./TestResults$pulse-agent

Observe first. Guard is the optional gate — after the baseline is trusted.

Who it is for

Shared .NET CI. Feedback before production.

  • The picture of the run before it ships
  • Flaky, slow, and newly slow tests — named, not rerun until green
  • The same commands on the CI runner you already operate

Pricing

Pulse Run. Request. Then we invoice.

One run is one pulse command — build, test, perf, repo, owner, or sarif. Same commands on every plan. Yearly is 20% off. List prices are USD. Prices exclude VAT where it applies. Invoice first. Card later. No public trial — we land the first pipeline with you, then we invoice.

  1. Start here

    Starter

    $1,820

    per year

    • 4,000 runs / month
    • 30 days retention
    • Warn + 200 at the cap
    • All pulse commands
    Request Starter
  2. When CI is loud

    Scale

    $9,500

    per year

    • 40,000 runs / month
    • 1 year retention
    • Warn + 2,000 at the cap
    • All pulse commands
    Request Scale
  3. Volume & fit

    Custom

    Talk to us

    custom quote

    • Volume beyond Scale
    • To fit retention
    • Volume, retention, air-gap
    • All pulse commands
    Request Custom

Fair policy: 1 run = 1 execution of any pulse command (build, test, perf, repo, owner, or sarif). Two commands in one pipeline job are two runs. Hitting the monthly cap sends a warning, then 5% more runs (at least 50) as a buffer — the job does not freeze on the last run. In-house / air-gapped is a waitlist. Join the waitlist.

Run estimate

How many runs do you need?

People × CI runs per person per month × fires × pulse commands. One command is one run — pulse test after pulse build is two. Rough, not a quote. We bill runs, not seats.

How often Pulse would fire
~5 PRs or CI runs per person / month, ~3 fires each (push and rerun)
Commands in that job
Two CLI calls. Two runs. We bill each command.

Estimated runs / month

360

12 people × ~5 CI runs / person / month × ~3 CI fires × 2 runs (one per command).

360 / 4,0009% of Starter

That fits Starter.

Request Starter

Next step

Start with one pipeline.

Submit a request. We help you land pulse-agent on one existing pipeline. We invoice when those runs are in use.

Agent runs on your CI runner. Security — metadata only. Source stays with you.