Retour
    Enterprise · Observabilité

    Branchez-le sur la stack que vous exploitez déjà.

    Métriques, traces, logs structurés et flux d'audit — sur des endpoints ouverts et standards. Pointez votre Prometheus, votre collecteur OTLP et votre SIEM sur Pulse. Il expose ; vous scrapez. Jamais de phone-home.

    Prometheus /metricsOpenTelemetry OTLPAudit SSE → SIEMTime-travel par événement

    Sur votre périmètre

    Pulse n'ouvre jamais de connexion sortante vers un service d'observabilité tiers. Chaque signal est exposé sur un endpoint dans votre réseau ; vos collecteurs se connectent, et vous décidez de ce qui sort de votre egress. Pas de destination OTLP embarquée, pas de vendor lock-in, pas de télémétrie qui nous revient.

    Quatre signaux, formats standards

    Tout ce que vous instrumenteriez vous-même — déjà émis.

    Chaque signal parle le format que vos outils ingèrent déjà. Aucun adaptateur à écrire, aucun agent propriétaire à installer.

    Metrics

    GET /metrics

    Débit du moteur, lag consommateur, réplication Raft, JVM, agents & MCP tools — au format Prometheus text.

    → Prometheus · Grafana · VictoriaMetrics

    Traces

    OTLP · W3C context

    Spans sur le webhook, le consensus et les chemins MCP, plus auto-instrumentation HTTP / Postgres / JDBC. Exportez où vous voulez.

    → Tempo · Jaeger · Datadog APM

    Logs structurés

    stdout · correlation-tagged

    Les lignes SLF4J / Logback portent les IDs de trace et de span quand l'agent OTel est attaché — expédiez-les avec l'agent que vous utilisez déjà.

    → Loki · Vector · Fluent Bit · Filebeat

    Flux d'audit

    GET /api/audit/stream

    Un flux SSE long-lived de chaque ligne d'audit — qui a fait quoi, quand — avec bearer tokens et reconnect sans trous.

    → Splunk · Elastic SIEM · Wazuh · Chronicle

    Les endpoints, pour de vrai

    Scrapez-le, tracez-le, streamez-le.

    Les appels qu'un opérateur passe vraiment. Copiez-les sur un Pulse qui tourne.

    Format Prometheus textPort 8080Auth: aucune (bind sur réseau métrique)
    # Pointez votre Prometheus scrape_config dessus — ou curl direct
    curl http://pulse:8080/metrics

    Sortie exemple

    # HELP streamflow_engine_events_total Events ingested
    streamflow_engine_events_total{node="node-1"} 4821573
    streamflow_engine_append_latency_seconds{quantile="0.99"} 0.0004
    streamflow_consumer_lag{group="orders",topic="orders"} 12
    streamflow_raft_replication_ratio{node="node-1"} 1.0
    pulse_agent_events_processed_total{agent="fraud-scorer"} 98120
    pulse_mcp_tool_calls_total{tool="slack.post"} 431
    jvm_memory_used_bytes{area="heap"} 318767104

    Time-travel par événement

    Rejouez le parcours complet d'un événement — de façon déterministe.

    Au-delà des dashboards agrégés : sélectionnez un événement unique et parcourez son chemin complet à travers les sources, étages et sinks. Pulse enregistre la trajectoire de chaque saut et peut la rejouer byte-for-byte dans un moteur mocké — la même entrée produit la même sortie, deux fois.

    source

    webhook.ingest

    +0.0 ms

    stage · rule

    fraud-score

    +1.2 ms

    stage · llm

    triage-router

    +284 ms

    stage · mcp

    slack.post

    +91 ms

    sink

    jdbc.orders

    +3.4 ms

    Le replay déterministe est testé en CI. Le moteur de replay rejoue un événement capturé avec des I/O mockées et vérifie que la sortie est byte-identique sur deux exécutions — l'enquête "pourquoi cet événement a fait ça ?" devient reproductible, plus une devinette. Récupérez la trajectoire d'un événement sur GET /api/pulse/trajectory/{eventId}.

    Dashboards en une commande

    Un Grafana déjà câblé.

    Pas envie de construire les panels de zéro ? Une stack Prometheus + Grafana avec un dashboard StreamFlow provisionné est livrée dans le repo.

    Familles de métriques

    Débit moteur · latence d'append · disque ; lag consommateur ; ratio de réplication Raft ; JVM ; Agents ; MCP tools ; spans agent-graph.

    Dashboard Grafana

    9 panneaux, provisionnés automatiquement, avec seuils visuels.

    Alertes

    Règles pré-configurées ; routing Slack / PagerDuty via Alertmanager.

    Démarrer la stack de monitoring

    # Prometheus + Grafana, dashboard auto-provisionné
    docker compose -f deploy/monitoring/compose.yml up -d
    
    # Grafana → http://localhost:3000  (dashboard déjà là)
    # Métriques brutes → http://pulse:8080/metrics
    PrometheusGrafanaTempoJaegerLokiAlertmanagerSplunkDatadogElasticWazuh

    Frontières honnêtes.

    Tracing en opt-in.

    Pulse n'a aucune dépendance de compilation vers OpenTelemetry — les spans deviennent réels seulement quand vous attachez l'agent standard, et sont un no-op garanti (une lecture volatile, zéro allocation) sinon. L'install on-prem single-binary reste léger.

    Rien ne sort par défaut.

    Vous choisissez l'endpoint OTLP et la destination SIEM ; Pulse n'initie jamais de connexion de télémétrie sortante.

    Logs tagués, pas reformatés.

    Ils portent les IDs trace/span quand l'agent est attaché ; expédiez-les avec l'agent de logs que vous exploitez déjà.

    ◆ Enterprise

    Vos dashboards. Votre SIEM. Votre décision.

    Endpoints ouverts, formats standards, zéro phone-home. Branchez Pulse sur la stack d'observabilité en qui vous avez déjà confiance — en un après-midi, pas un trimestre.