Skip to main content

SCOM-based microservice boundary analysis from Jaeger traces

Project description

Changelog

v0.3.8 (2026-06-17)

Consolidation — single-service orchestrator

  • deploy.py: Python services always use OTLP HTTP/4318 (removed conditional gRPC fallback). Smart Jaeger detection (_jaeger_alive, _docker_container_exists) with 3-case restart logic. New DOCKER_START_FAILED error code.
  • discover.py: Service deduplication by (name, deployment). Subdirectory scanning for monorepos (_is_service_dir, _discover_subdirectory_services).
  • orchestrator.py: New _llm_instrument_services step called between discovery and deploy, triggered by --llm flag + OPENROUTER_API_KEY. Falls back silently to Dockerfile patching.
  • prompts.py: Universal framework-agnostic prompt replaces FastAPI/Flask-only prompt. Python reference appendix (FastAPI, Flask, Django, SQLAlchemy).
  • instrumentation.py: Passes structured context dict for richer prompts.
  • Tests: All 561 pass with updated env vars and prompt text.

v0.3.7 (2026-06-16)

Bug fixes

  • Pipeline crash when no services are flagged suspicious (EmptyDataError on empty CSV). Added size check and try/except in report_builder.py.

v0.3.6 (2026-06-16)

Features

  • ENTRYPOINT injected directly into .mba-Dockerfile instead of compose entrypoint override (Docker Compose v5 on Windows clears CMD when entrypoint is set in YAML)
  • opentelemetry-distro added as runtime dependency (provides OpenTelemetryConfigurator entry point, needed for SDK config from env vars)
  • Windows console encoding fix: sys.stdout.reconfigure(encoding='utf-8') in CLI module

v0.3.5 (2026-06-16)

Features

  • Build-time OTel install: generates .mba-Dockerfile with RUN pip install opentelemetry-distro opentelemetry-instrumentation-flask etc. at build time
  • Compose override points build.dockerfile to .mba-Dockerfile
  • Cleanup of .mba-Dockerfile files after analysis

v1.0.0 (2026-06-11)

Features

  • SCOM pipeline : computes Service-COhesion Metric from Jaeger traces (health filtering, endpoint extraction, DB table detection, endpoint-table mapping, threshold analysis, report generation)
  • CLI tool : mba / boundary-analyzer commands (run, setup, dashboard, teastore)
  • Auto-instrumentation : auto-detects Python microservices (FastAPI, Flask, Django), injects OpenTelemetry, collects traces via Jaeger, runs SCOM analysis
  • TeaStore support : Docker Compose deployment with OTel Java agent, traffic generator, trace exporter, full SCOM pipeline
  • Dashboard : interactive Dash web UI for SCOM results
  • LLM analysis (optional) : AI-powered narrative report via OpenRouter (Qwen), disabled by default

Improvements

  • Segment-based health matching (HEALTH_KEYWORDS) instead of fragile endswith/health/all, /auth/health, /ready/isready, /metrics (via http.target) correctly filtered
  • --skip-no-db-services flag to exclude stateless services (proxy, orchestrator, etc.) from SCOM ranking
  • run_teastore() function extracted for programmatic access

Bug fixes

  • MissingGreenlet in classroom-repository (added selectinload)
  • datetime timezone-aware comparison in enrollment-service
  • academic_year int→str conversion in enrollment-service
  • Scope bug in cleaned_parts variable in CLI cleanup logic
  • SQLAlchemy duplicate instrumentation (event listeners only, no SQLAlchemyInstrumentor/AsyncPGInstrumentor)
  • [project.scripts] whitespace in pyproject.toml

Tests

  • 74 tests total (58 existing + 16 TeaStore)
  • TeaStore synthetic fixtures (persistence-service with 5 tables, auth-service without DB)
  • 3 test classes : TeaStorePipelineTest, TeaStoreSkipNoDbTest, TeaStoreNoFilterTest

Infrastructure

  • CI via GitHub Actions (.github/workflows/ci.yml) — Python 3.11 × 3.12
  • mba CLI alias alongside boundary-analyzer
  • Version bump to 0.2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boundary_analyzer-0.3.8.tar.gz (146.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boundary_analyzer-0.3.8-py3-none-any.whl (144.7 kB view details)

Uploaded Python 3

File details

Details for the file boundary_analyzer-0.3.8.tar.gz.

File metadata

  • Download URL: boundary_analyzer-0.3.8.tar.gz
  • Upload date:
  • Size: 146.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for boundary_analyzer-0.3.8.tar.gz
Algorithm Hash digest
SHA256 9d9d460b5e319bd4f3dd92663609209c1cc5e02e7c1e7fba783308bb8b1678f4
MD5 84f1cb876863a9ce77dc8b61eec7a574
BLAKE2b-256 849b9e2d3126ee1674054c03a6e83f6743dbd56498b840a0a832b5f502ce2004

See more details on using hashes here.

File details

Details for the file boundary_analyzer-0.3.8-py3-none-any.whl.

File metadata

File hashes

Hashes for boundary_analyzer-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 a55d86a1af8b46b1c2e0b1c1666836b1f9dd1198396e6618c530da788a93df88
MD5 782633c722f0b75e003c030e6d16a1ce
BLAKE2b-256 a0052f45ccc38f69f4b3edba0607ca4de72c2e8cc3666c34bd2559dd8d0a5c9b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page