Skip to main content
Continuous profiling shows where a service spends CPU time, allocates memory, or waits on locks. Open Continuous Profiling from the main navigation.

Profile intake

MoleSignal accepts:
  • OTLP profiles on the external OTLP gRPC receiver;
  • Pyroscope-compatible intake at /api/v1/profiles/intake;
  • direct pprof uploads at /api/v1/profiles/upload;
  • individual profile files uploaded from the UI.
Profile metadata is queryable. Canonical pprof blobs are compressed and stored in object storage.

Analyze a flame graph

Select a service, profile type, and time range. Choose one or more profiles to merge into the analysis. The flame graph supports:
  • zooming into a stack frame;
  • searching and highlighting functions;
  • self and cumulative sample values;
  • a ranked top-functions view;
  • per-function details and stack context;
  • live refresh for recent windows.

Compare two windows

Open Compare profiles to select a baseline and comparison range. The diff flame graph highlights functions that became hotter or cooler, which is useful after a release or configuration change. Differential profiling requires the profiling_enhanced entitlement in Enterprise Edition. Profile intake, listing, downloads, trace correlation, and single-window flame graphs remain available without the entitlement.

Separate application and node profiling

Application profiles belong to organization streams and appear in the product UI. MoleSignal also has a node-local pprof listener for platform operations. That listener is disabled by default and should normally remain bound to loopback. See Self-observability for the node listener and scheduled _molesignal profiles.

Permissions

  • streams.read discovers profile data.
  • streams.query renders and compares flame graphs.
  • streams.write or an intake credential sends profiles.
Profiles can reveal function names, code layout, and resource-use patterns. Protect profile intake, downloads, and the node pprof listener as sensitive operational data.
Last modified on August 13, 2026