SCOM-based microservice boundary analysis from Jaeger traces
Project description
Changelog
v0.3.7 (2026-06-16)
Bug fixes
- Pipeline crash when no services are flagged suspicious (
EmptyDataErroron empty CSV). Added size check and try/except inreport_builder.py.
v0.3.6 (2026-06-16)
Features
- ENTRYPOINT injected directly into
.mba-Dockerfileinstead of composeentrypointoverride (Docker Compose v5 on Windows clears CMD when entrypoint is set in YAML) opentelemetry-distroadded as runtime dependency (providesOpenTelemetryConfiguratorentry 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-DockerfilewithRUN pip install opentelemetry-distro opentelemetry-instrumentation-flasketc. at build time - Compose override points
build.dockerfileto.mba-Dockerfile - Cleanup of
.mba-Dockerfilefiles 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-analyzercommands (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 fragileendswith—/health/all,/auth/health,/ready/isready,/metrics(viahttp.target) correctly filtered --skip-no-db-servicesflag to exclude stateless services (proxy, orchestrator, etc.) from SCOM rankingrun_teastore()function extracted for programmatic access
Bug fixes
- MissingGreenlet in classroom-repository (added
selectinload) - datetime timezone-aware comparison in enrollment-service
academic_yearint→str conversion in enrollment-service- Scope bug in
cleaned_partsvariable 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 mbaCLI alias alongsideboundary-analyzer- Version bump to 0.2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file boundary_analyzer-0.3.7-py3-none-any.whl.
File metadata
- Download URL: boundary_analyzer-0.3.7-py3-none-any.whl
- Upload date:
- Size: 141.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e38310fa3d08ec0b432dd95e8f8c8c137cc844dbb3773325b9d53d2f812dc33
|
|
| MD5 |
a8e2b39b62c75298a14f74c548717e5f
|
|
| BLAKE2b-256 |
0660e5da2be8f2668e52b18a27c35406d5f67ca112e14db1b3c78fb6b6423450
|