Observability Signal Catalog

on this page

Launchpad exports logs and finite, current-state gauge observations. Metrics are collected when the plugin becomes ready, every metrics.intervalMs in persistent mode, and once more during graceful shutdown. Event include and exclude patterns affect logs only.

Destination logs replay from the controller’s retained canonical file by default; logStorage: { type: 'memory' } opts out. Each replayed record keeps its original timestamp and resource snapshot. Metrics are never reconstructed or backfilled from that file; after restart they remain latest-state observations from the new process.

Metrics are observations, not fleet assertions. Missing metrics can mean a plugin is absent, its state is unavailable, or a configured entity has not been observed. They do not describe desired applications, expected machines, or overall health.

Attribute scopes

Every metric batch carries the plugin’s resource attributes, including the runtime-managed service.name and service.instance.id. The attributes listed in the tables below belong to individual metric points. Resource attributes are not copied into that point scope.

Plugins define their own primitive point attributes. service.name and service.instance.id are reserved on metric points so they cannot conflict with the resource identity; other resource keys are not reserved there.

Runtime and delivery

NameUnitAttributesMeaning
launchpad.runtime.observation.timestampms—Collection time as Unix milliseconds
launchpad.runtime.start_timems—Controller start time as Unix milliseconds
launchpad.runtime.uptimems—Elapsed time since controller start
launchpad.observability.delivery.pushed_total—destination, signalRecords accepted during this process lifetime
launchpad.observability.delivery.dropped_total—destination, signalRecords dropped during this process lifetime
launchpad.observability.delivery.queue_batches—destination, signalBatches currently queued
launchpad.observability.delivery.last_success_timestampmsdestination, signalMost recent successful export as Unix milliseconds; omitted until success
launchpad.observability.source.records_lost_total—destination, signalFile-source records proven lost during this process; emitted for file-backed logs
launchpad.observability.source.unknown_gaps_total—destination, signalFile-source gaps whose record count is unknown during this process; emitted for file-backed logs

The _total observations are process-local gauges of current counters, not durable OTLP sums. Parked or unavailable file-source status is exposed in the observability plugin’s destination state and controller diagnostics. A loss total increases only when the exact number is known; otherwise the unknown-gap total increases.

Content

NameUnitAttributesMeaning
launchpad_content_source_state—source, stateOne-hot current state: pending, fetching, success, or error
launchpad_content_source_last_success_secondsssourceRecorded successful fetch completion as Unix seconds
launchpad_content_active_version_promoted_secondss—Recorded active-version promotion as Unix seconds
launchpad_content_retained_versions——Retained count from the latest retention sweep
launchpad_content_pending_delete_versions——Pending-delete count from the latest retention sweep

Only configured sources with state are emitted. launchpad_content_source_last_success_seconds appears after the first successful fetch and remains available across later fetching or error states in the same process. That history is held in memory and does not persist across restarts. The active-version promotion timestamp is present only when retention state exists. These timestamps do not establish overall content freshness and there is no generatedAt metric.

Monitor

NameUnitAttributesMeaning
launchpad_monitor_connected——1 when the monitor is currently connected to its process manager, otherwise 0
launchpad_monitor_app_status—app, statusOne-hot observed status: online, offline, or errored

Only configured apps that have current monitor state are emitted. The status is the monitor’s current observation, not authoritative readiness, crash history, or an inventory of all expected apps.

Scheduler

NameUnitAttributesMeaning
launchpad_scheduler_job_running—job1 while a dispatch is in flight
launchpad_scheduler_job_overlap_skips—jobCurrent process count of overlap skips
launchpad_scheduler_job_retry_attempt—jobCurrent consecutive failed-attempt count
launchpad_scheduler_job_last_success_secondssjobLatest successful completion as Unix seconds; omitted until present
launchpad_scheduler_job_last_outcome—job, outcomeOne-hot latest outcome: success, overlapSkip, or failure; omitted until present

Only configured jobs with scheduler state are emitted. Every scheduler observation is a gauge of state held by this process; the scheduler does not expose native monotonic counters.

Custom plugin observations

Plugins can provide gauges through their observe(state) hook. Names must begin with a letter and contain only letters, digits, _, ., or -; values must be finite. Launchpad also bounds names, descriptions, and primitive attributes before delivery. Invalid observations are omitted so they cannot break a complete collection cycle.

Launchpad does not currently export traces, histograms, percentiles, or automatic process CPU and memory measurements. File-backed logs do not change this signal set.