Intramedial est en bêta restreinte. À l’inscription ou à la connexion, vous devez fournir le mot de passe de bêta-testeur que vous avez reçu ou en demander un à preview@intramedial.com. Merci.
Chargement…
watchdog.checkModule 36
Module du plan
Issuance watchdog
Repérez un plan qui émet des leases ou des identifiants trop vite, ou qui s’est tu, en lisant le registre plutôt qu’en interrogeant le plan.
watchdog.check lit le registre et signale les anomalies de débit dans deux familles : les attributions de lease, et l’émission d’identifiants via iam.assume et iam.warehouse. Il lève un rate-spike, un par un acteur et un . Il n’importe rien des modules qu’il surveille et ne stocke rien.
Intralock · Baux · Parley · Fleet Map
A Trustvice Product
Les agents agissent quand le plan dit oui, et le registre dit pourquoi.
Faites passer actions d’agents, hash de contenu, contrôles d’API, requêtes DNS, webhooks, appels LLM et commits git par Intramedial. Obtenez un reçu signé vérifiable par tous – sans nous croire.
ÉtatRien n’exécute le watchdog selon un calendrier
watchdog/check répond quand on l’appelle. Aucun cron, file ni page n’y est relié, donc un constat n’est vu que lorsque quelque chose lit la route. Appelez-le depuis votre propre planificateur et acheminez findings vers votre alerte.
Registre
Le registre
Ce qui est enregistré
findings
Les anomalies trouvées. Vide quand rien ne sort de la plage.
code
Sur chaque constat : rate-spike, burst ou went-silent.
Sur chaque constat : le DID à l’origine d’un burst, et null pour les autres codes.
observed
Le nombre qui a déclenché le constat. 0 pour went-silent.
baseline
La médiane des intervalles précédents pour un pic, la limite de rafale pour un burst, et null pour un silence.
why
Une phrase indiquant les comptes et la fenêtre.
scanned
Le nombre d’événements du registre lus par la vérification.
background
Combien d’entre eux n’appartenaient pas à une famille surveillée.
tuning
Remplacements facultatifs par appel, avec nowMs pour figer l’horloge.
Mécanisme
Pas à pas
Comment ça marche
Lire le registre
GET /api/v1/acp/watchdog/check liste les événements du registre de l’espace de travail et conserve deux familles : coordination.lease, et iam.assume avec iam.warehouse.
Comparer le dernier intervalle
Les événements tombent dans dix intervalles de 60 000 ms. Un rate-spike est levé quand le dernier intervalle atteint au moins quatre fois la médiane des précédents, et au moins cinq.
Repérer la rafale d’un acteur
Un burst est levé pour un acteur ayant dix événements d’une même famille en 5 000 ms. Le constat nomme l’acteur et le nombre.
Traiter le silence comme un constat
went-silent est levé quand une famille est absente depuis 15 minutes alors qu’au moins trois autres événements du registre sont arrivés dans ce laps de temps. Un registre silencieux partout ne lève rien.
Dire ce qu’il a vu
La réponse contient findings, le nombre d’événements scanned, le nombre d’événements background et les types watched, afin qu’un constat de silence puisse être recoupé avec le reste du trafic.
Essayer
Démo en direct
Exécutez-le depuis cette page
GET/api/v1/acp/watchdog/check
// Pas de corps : c’est un GET. Appuyez sur Exécuter.
S’exécute dans un workspace de démonstration partagé avec une clé de démonstration : tout le monde peut voir ce qu’il contient, n’envoyez donc rien de privé. Docs watchdog.check
Réponses
Appuyez sur Exécuter pour envoyer la requête de gauche au workspace de démonstration partagé.
S’exécute dans un workspace de démonstration partagé avec une clé de démonstration : tout le monde peut voir ce qu’il contient, n’envoyez donc rien de privé.
Code
Exemple en direct
Une vraie requête
Une requête dans la forme acceptée par l’API, et un exemple de réponse dans la forme renvoyée par le module.
{
"at": "2026-11-01T09:15:00.000Z",
"findings": [
{
"code": "went-silent",
"family": "credential",
"actor": null,
"observed": 0,
"baseline": null,
"why": "no credential events at all while 14 other ledger events were written in the last 15 minutes – zero is not quiet when the ledger is still moving"
}
],
"scanned": 57,
"background": 41,
"watched": {
"lease": [
"coordination.lease"
],
"credential": [
"iam.assume",
"iam.warehouse"
]
}
}
Usage
Cas d’usage
Quand les équipes l’utilisent
Un broker qui cesse d’enregistrer
Il continue d'émettre des identifiants mais cesse de les consigner. Le registre reste actif sur d'autres types, donc went-silent se déclenche pour la famille credential.
Un agent emballé
Un agent prend des leases en boucle serrée. burst indique son DID et le nombre de leases prises.
Beaucoup d'agents à la fois
Une flotte se met à prendre des leases en même temps. Le dernier intervalle dépasse quatre fois la médiane et rate-spike se déclenche.
Une nuit calme
Un tenant sans aucun trafic ne lève aucun constat, car le silence ne compte que tant que d'autres événements du registre continuent d'arriver.
Quand utiliser autre chose
Décider d'une action isolée. L'admission relève de coordination.admit ; le watchdog lit l'historique.
Trouver les agents en concurrence pour une ressource. Utilisez detection.run.
Alerter. Il renvoie des constats et n'envoie rien : branchez sa sortie sur votre propre alerte.
Preuves
Garanties
Ce qu’il fait, et ce qu’il ne fait pas
Un module est une affirmation forte sur un sujet étroit. Fiez-vous-y exactement pour ce qu’il est.
Il le fait
Il lit les événements du registre, jamais l'instantané du coordinateur, et n'importe rien des modules qu'il surveille.
Il ne garde aucun état : ni référence, ni seuil appris, ni épinglage, donc rien à réécrire entre deux vérifications.
Une requête routée ne peut pas écrire d'événements coordination. dans le registre, donc un appelant ne peut pas forger les événements de lease qu'il compte.
La référence est une médiane, donc un pic ne peut pas se cacher dans sa propre moyenne.
Il ne le fait pas
Que le registre est complet. Si des événements ne sont jamais écrits, la seule preuve est un constat went-silent, et seulement tant que le reste du trafic continue.
Qu'un constat est une attaque. Un pic ou une rafale peut être un déploiement légitime ; un constat énonce des nombres, pas une intention.
Que quelqu'un a été alerté. Rien ne prévient une personne depuis cette route.
Détails
Notes de conception
Avant de construire
Réglage
Une requête peut passer tuning avec bucketMs, buckets, spikeMultiple, minSpike, burstMs, burstCount, quietMs et aliveEvents. Les valeurs par défaut sont 60 000 ms, 10, 4, 5, 5 000 ms, 10, 15 minutes et 3.
Pas d'identifiants
L'émission d'identifiants apparaît dans le registre comme un fait : qui, et sur quoi. La clé, le secret et les jetons ne sont pas écrits.
Trous d'enregistrement
L'échec d'écriture d'un événement de lease ou d'identifiant ne lève aucune erreur. Ce trou est ce que went-silent sert à détecter.
Routage des familles
GET /api/v1/acp/watchdog/families renvoie les types surveillés et le réglage par défaut.
Limites et mesure
Seules deux familles sont surveillées : les attributions de leases, et l'émission d'identifiants via iam.assume et iam.warehouse.
Un pic est jugé sur le dernier intervalle seulement, par rapport à la médiane des neuf précédents.
Une rafale exige un acteur dans le corps de l'événement (actorDid, holder, principal ou did). Les événements sans acteur comptent pour les pics mais pas pour les rafales.
tuning ne vaut que pour cet appel. Aucune route ne stocke de seuil ni de planification.
Accès
API et MCP
REST et MCP
Authentifiez-vous avec une clé d’API d’espace de travail comme jeton Bearer. L’URL de base est https://api.intramedial.com.
Points d’accès REST
GET/api/v1/acp/watchdog/checkFaire une passe sur le registre et renvoyer les constats.
GET/api/v1/acp/watchdog/familiesLister les types surveillés et le réglage par défaut.
Actions MCP
Ce module n’a aucune action MCP. Appelez-le via REST depuis n’importe quel agent ou programme.