Skip to content

blackcatacademy/blackcat-usage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlackCat Usage & Telemetry

Repo pro anonymizované sledování komponent (FE addons, marketplace items) a agregaci statistik. Pracuje s blackcat-observability, blackcat-analytics, blackcat-marketplace.

Stage 1 – Foundation ✅

  • Konfiguraceconfig/example.usage.php podporuje ${env:} / ${file:} a profily z blackcat-config, definuje úložiště, tajemství pro hashování tenantů a Prometheus výstup.
  • Runtime / CLIbin/usage <config> poskytuje ingest, aggregate, export. Události se ukládají do NDJSON souboru, exporty generují snapshot pro payout.
  • TelemetryUsageMetrics zapisuje počty událostí do var/metrics.prom (usage_events_total, usage_component_*).
  • Testingtests/SmokeTest.php ověřuje ingest + agregaci se snapshotem.
  • Sběr telemetry events (GDPR friendly)
  • Hashing/anonymization pipeline
  • API pro revenue share engine

Jak to funguje

  1. bin/usage ingest zavolá UsageService, který pomocí Ingestor normalizuje payload (hash tenant, očistí metadata).
  2. Událost se uloží do append-only NDJSON (data/usage.ndjson) přes Storage\EventStore.
  3. UsageAggregator počítá souhrny pro komponenty (počty tenantů, eventů, průměr) – používá marketplace / payout vrstva.
  4. UsageExporter dokáže vyexportovat raw events (json, ndjson) nebo revenue snapshot (--format=revenue).
export BLACKCAT_USAGE_CONFIG=blackcat-usage/config/example.usage.php

# ingest jednoho eventu
php bin/usage $BLACKCAT_USAGE_CONFIG ingest '{"component_id":"identity-consent-card","tenant_id":"acme","count":5}'

# agregace pro payout engine
php bin/usage $BLACKCAT_USAGE_CONFIG aggregate

# export feedu pro blackcat-payout
php bin/usage $BLACKCAT_USAGE_CONFIG export revenue > snapshot.json

About

Anonymized usage telemetry collector for optimization, billing and revenue sharing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages