elastic-observability-migration 0.4.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- elastic_observability_migration-0.4.0rc1/LICENSE +93 -0
- elastic_observability_migration-0.4.0rc1/MANIFEST.in +9 -0
- elastic_observability_migration-0.4.0rc1/NOTICE.txt +22 -0
- elastic_observability_migration-0.4.0rc1/PKG-INFO +189 -0
- elastic_observability_migration-0.4.0rc1/README.md +132 -0
- elastic_observability_migration-0.4.0rc1/THIRD_PARTY_NOTICES.md +157 -0
- elastic_observability_migration-0.4.0rc1/docs/licenses/dependencies.md +94 -0
- elastic_observability_migration-0.4.0rc1/docs/licenses/sbom.cdx.json +3681 -0
- elastic_observability_migration-0.4.0rc1/elastic_observability_migration.egg-info/PKG-INFO +189 -0
- elastic_observability_migration-0.4.0rc1/elastic_observability_migration.egg-info/SOURCES.txt +334 -0
- elastic_observability_migration-0.4.0rc1/elastic_observability_migration.egg-info/dependency_links.txt +1 -0
- elastic_observability_migration-0.4.0rc1/elastic_observability_migration.egg-info/entry_points.txt +6 -0
- elastic_observability_migration-0.4.0rc1/elastic_observability_migration.egg-info/requires.txt +43 -0
- elastic_observability_migration-0.4.0rc1/elastic_observability_migration.egg-info/top_level.txt +1 -0
- elastic_observability_migration-0.4.0rc1/licenses/Apache-2.0.txt +201 -0
- elastic_observability_migration-0.4.0rc1/licenses/BSD-3-Clause-DataDog-integrations-core.txt +27 -0
- elastic_observability_migration-0.4.0rc1/licenses/MIT-FUSAKLA-Prometheus2-grafana-dashboard.txt +21 -0
- elastic_observability_migration-0.4.0rc1/licenses/MIT-strawgate-kb-yaml-to-lens.txt +21 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/__init__.py +13 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/__main__.py +9 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/_version.py +35 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/__init__.py +4 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/__init__.py +4 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/__init__.py +5 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/adapter.py +78 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/alert_pipeline.py +286 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/browser_audit.py +132 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/cli.py +1727 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/display.py +457 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/esql_emitters.py +27 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/esql_structural_oracle.py +66 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/execution.py +483 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/extension_schema.py +65 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/extract.py +358 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/field_map.py +499 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/generate.py +1782 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/log_parser.py +708 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/manifest.py +94 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/models.py +573 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/monitor_seed.py +221 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/monitor_translate.py +1771 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/normalize.py +651 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/parity/__init__.py +10 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/parity/dd_client.py +173 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/parity/diff.py +290 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/parity/seeder.py +280 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/parser_results.py +52 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/planner.py +713 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/preflight.py +661 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/query_parser.py +736 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/report.py +601 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/rollout.py +249 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/rules.py +128 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/translate.py +2698 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/datadog/verification.py +531 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/__init__.py +5 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/adapter.py +76 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/alert_pipeline.py +511 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/alerts.py +412 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/annotations.py +125 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/assistant.py +431 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/broader_surface_gate.py +218 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/cli.py +2851 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/contract_evaluator.py +68 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/corpus.py +1053 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/esql_emitters.py +22 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/esql_structural_oracle.py +27 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/esql_validate.py +732 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/execution/__init__.py +15 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/execution/adapters.py +236 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/execution/source.py +118 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/execution/target.py +51 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/extension_schema.py +207 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/extract.py +672 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/fulfillment_planner.py +50 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/links.py +218 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/llm_translate.py +138 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/local_ai.py +219 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/logql_emitters.py +18 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/manifest.py +392 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/panels.py +8315 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/polish.py +327 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/preflight.py +1278 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/promql.py +6045 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/rollout.py +257 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/routing_artifacts.py +184 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/rules.py +489 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/runtime_features.py +110 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/schema.py +1106 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/semantic_planner.py +111 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/series_labels.py +234 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/smoke.py +1409 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/smoke_integration.py +11 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/transforms.py +802 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/translate.py +4132 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/validate_uploaded_dashboards.py +12 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/adapters/source/grafana/verification.py +449 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/app/__init__.py +4 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/app/cli.py +2053 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/app/verify.py +559 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/__init__.py +4 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/__init__.py +94 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/alerting.py +641 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/annotation.py +37 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/control.py +132 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/dashboard.py +105 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/link.py +37 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/native_dashboard.py +347 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/operational.py +105 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/panel.py +111 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/query.py +150 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/status.py +46 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/target_query_contract.py +75 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/target_query_plan.py +29 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/transform.py +36 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/assets/visual.py +133 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/cli_contract.py +53 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/coverage/__init__.py +2 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/coverage/canary.py +239 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/coverage/datadog_introspect.py +45 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/coverage/interaction_canary.py +563 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/coverage/supported_types.py +94 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/extensions/__init__.py +15 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/extensions/catalog.py +70 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/extensions/registry.py +97 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/http.py +130 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/interfaces/__init__.py +15 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/interfaces/registries.py +45 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/interfaces/source_adapter.py +92 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/interfaces/target_adapter.py +36 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/mapping.py +1496 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/metric_mapping/__init__.py +59 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/metric_mapping/bindings.py +106 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/metric_mapping/entries.py +270 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/metric_mapping/files.py +97 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/metric_mapping/recording_rules.py +16 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/metric_mapping/reporting.py +80 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/metric_mapping/scaffold.py +149 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/progress.py +29 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/reporting/__init__.py +4 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/reporting/report.py +834 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/reporting/summary_md.py +486 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/sample_data.py +291 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/selection.py +294 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/telemetry_contract.py +2253 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/telemetry_data.py +1262 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/__init__.py +4 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/alert_offline_gate.py +294 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/comparators.py +277 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/disposition.py +153 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/field_capabilities.py +329 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/parity_oracle.py +1293 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/translation_oracle/__init__.py +37 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/translation_oracle/pipeline.py +69 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/translation_oracle/structure.py +222 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/core/verification/translation_oracle/types.py +45 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/sample_dashboards/__init__.py +10 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/sample_dashboards/catalog.py +65 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/sample_dashboards/datadog/host-basics/dashboard.json +39 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/sample_dashboards/grafana/prom-basics/dashboard.json +46 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/__init__.py +4 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/__init__.py +12 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/_kbtool.py +90 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/adapter.py +758 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/alerting.py +1131 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/compile.py +477 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/dashboards_api.py +2280 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/emit/__init__.py +4 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/emit/display.py +385 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/emit/esql_utils.py +314 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/emit/layout.py +263 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/interaction_audit.py +856 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/interaction_audit_local.py +815 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/interaction_driver.py +2080 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/interaction_runner.py +1588 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/interaction_scenarios.py +961 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/layout.py +213 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/lint.py +255 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/native_artifacts.py +189 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/render_audit.py +663 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/render_audit_driver.py +611 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/serverless.py +426 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/smoke.py +136 -0
- elastic_observability_migration-0.4.0rc1/observability_migration/targets/kibana/smoke_integration.py +131 -0
- elastic_observability_migration-0.4.0rc1/pyproject.toml +153 -0
- elastic_observability_migration-0.4.0rc1/setup.cfg +4 -0
- elastic_observability_migration-0.4.0rc1/tests/test_alert_fixture_offline_gate.py +86 -0
- elastic_observability_migration-0.4.0rc1/tests/test_alert_migration.py +5542 -0
- elastic_observability_migration-0.4.0rc1/tests/test_alert_offline_gate.py +114 -0
- elastic_observability_migration-0.4.0rc1/tests/test_app_cli.py +1740 -0
- elastic_observability_migration-0.4.0rc1/tests/test_app_cli_skill_commands.py +1253 -0
- elastic_observability_migration-0.4.0rc1/tests/test_audit_migrated_rules_script.py +115 -0
- elastic_observability_migration-0.4.0rc1/tests/test_audit_pipeline.py +108 -0
- elastic_observability_migration-0.4.0rc1/tests/test_bump_version_script.py +62 -0
- elastic_observability_migration-0.4.0rc1/tests/test_canary.py +230 -0
- elastic_observability_migration-0.4.0rc1/tests/test_check_licenses_script.py +118 -0
- elastic_observability_migration-0.4.0rc1/tests/test_check_release_version.py +58 -0
- elastic_observability_migration-0.4.0rc1/tests/test_check_skill_mirror.py +200 -0
- elastic_observability_migration-0.4.0rc1/tests/test_cli_contract_matrix.py +311 -0
- elastic_observability_migration-0.4.0rc1/tests/test_command_contract_doc.py +425 -0
- elastic_observability_migration-0.4.0rc1/tests/test_command_contract_execution.py +528 -0
- elastic_observability_migration-0.4.0rc1/tests/test_command_contract_metric_map_examples.py +234 -0
- elastic_observability_migration-0.4.0rc1/tests/test_community_corpus.py +82 -0
- elastic_observability_migration-0.4.0rc1/tests/test_create_grafana_test_alerts_script.py +148 -0
- elastic_observability_migration-0.4.0rc1/tests/test_dashboards_api_mapper_parity.py +235 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_cli_native_artifacts.py +124 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_community_corpus.py +63 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_dashboard_selection.py +68 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_demo_script.py +57 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_esql_emitter_matrix.py +147 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_esql_snapshots.py +444 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_esql_structural_oracle.py +53 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_fixture_structural_gate.py +58 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_migrate.py +6719 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_monitor_seed.py +113 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_monitor_selection.py +60 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_native_dashboard_emission.py +118 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_panel_matrix.py +183 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_report.py +147 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_selection_metadata.py +63 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_test_plan.py +1356 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_tls.py +360 -0
- elastic_observability_migration-0.4.0rc1/tests/test_datadog_yaml_generation.py +463 -0
- elastic_observability_migration-0.4.0rc1/tests/test_disposition.py +135 -0
- elastic_observability_migration-0.4.0rc1/tests/test_esql_structural_oracle.py +87 -0
- elastic_observability_migration-0.4.0rc1/tests/test_feature_gap_integration.py +213 -0
- elastic_observability_migration-0.4.0rc1/tests/test_fetch_dashboards_api_schema.py +91 -0
- elastic_observability_migration-0.4.0rc1/tests/test_generate_corpus.py +182 -0
- elastic_observability_migration-0.4.0rc1/tests/test_generate_routing_artifacts_script.py +50 -0
- elastic_observability_migration-0.4.0rc1/tests/test_generate_telemetry_contract_script.py +80 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_alert_selection.py +57 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_cli_native_artifacts.py +222 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_cli_smoke_parity.py +1856 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_contract_evaluator.py +174 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_count_by_class.py +54 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_dashboard_selection.py +58 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_dashboard_surface_gate.py +94 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_dotted_group_keep.py +42 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_esql_emitter_matrix.py +203 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_extended.py +4144 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_extract.py +50 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_fixture_structural_gate.py +65 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_histogram_summary_ratio.py +46 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_ir_units.py +167 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_issues_316_319.py +172 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_label_matcher_params.py +133 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_late_bound_missing_fields.py +83 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_logql_emitter_matrix.py +71 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_logql_fixture_gate.py +101 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_metrics_query_index_consistency.py +125 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_multi_target_summary.py +107 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_native_dashboard_emission.py +113 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_native_promql_smoke_gate.py +65 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_passthrough_profile.py +618 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_planned_field_profiles.py +668 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_preflight.py +494 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_qos_union_by.py +45 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_selection_metadata.py +75 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_semantic_accuracy.py +103 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_semantic_planner.py +112 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_tls_threading.py +47 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_transform_apply.py +275 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_transform_semantics.py +586 -0
- elastic_observability_migration-0.4.0rc1/tests/test_grafana_yaml_generation.py +914 -0
- elastic_observability_migration-0.4.0rc1/tests/test_hermetic_wheel_install.py +259 -0
- elastic_observability_migration-0.4.0rc1/tests/test_histogram_quantile_translation.py +249 -0
- elastic_observability_migration-0.4.0rc1/tests/test_interaction_audit.py +1312 -0
- elastic_observability_migration-0.4.0rc1/tests/test_interaction_audit_scripts.py +259 -0
- elastic_observability_migration-0.4.0rc1/tests/test_interaction_canary.py +571 -0
- elastic_observability_migration-0.4.0rc1/tests/test_interaction_driver.py +2651 -0
- elastic_observability_migration-0.4.0rc1/tests/test_interaction_runner.py +2371 -0
- elastic_observability_migration-0.4.0rc1/tests/test_interaction_scenarios.py +1426 -0
- elastic_observability_migration-0.4.0rc1/tests/test_issue156_label_aligned_joins.py +212 -0
- elastic_observability_migration-0.4.0rc1/tests/test_issue157_scalar_dropdown_substitution.py +335 -0
- elastic_observability_migration-0.4.0rc1/tests/test_issue197_join_group_label_verify.py +90 -0
- elastic_observability_migration-0.4.0rc1/tests/test_k8s_views_global_interaction_scenario.py +487 -0
- elastic_observability_migration-0.4.0rc1/tests/test_kibana_tls_threading.py +135 -0
- elastic_observability_migration-0.4.0rc1/tests/test_lens_reconstruct.py +297 -0
- elastic_observability_migration-0.4.0rc1/tests/test_local_ai.py +44 -0
- elastic_observability_migration-0.4.0rc1/tests/test_local_validation_scripts.py +103 -0
- elastic_observability_migration-0.4.0rc1/tests/test_metric_aware_label_resolution.py +641 -0
- elastic_observability_migration-0.4.0rc1/tests/test_migrate.py +17171 -0
- elastic_observability_migration-0.4.0rc1/tests/test_migration_summary_provenance.py +319 -0
- elastic_observability_migration-0.4.0rc1/tests/test_multi_target_merge_aliases.py +471 -0
- elastic_observability_migration-0.4.0rc1/tests/test_native_promql_controls.py +262 -0
- elastic_observability_migration-0.4.0rc1/tests/test_non_query_panel_regressions.py +275 -0
- elastic_observability_migration-0.4.0rc1/tests/test_obs_migrate_command_matrix.py +665 -0
- elastic_observability_migration-0.4.0rc1/tests/test_obs_migrate_verify.py +534 -0
- elastic_observability_migration-0.4.0rc1/tests/test_packaging_license_artifacts.py +100 -0
- elastic_observability_migration-0.4.0rc1/tests/test_panel_matrix.py +193 -0
- elastic_observability_migration-0.4.0rc1/tests/test_pr234_hunt_fixes.py +443 -0
- elastic_observability_migration-0.4.0rc1/tests/test_progress.py +40 -0
- elastic_observability_migration-0.4.0rc1/tests/test_promql_esql_operators.py +110 -0
- elastic_observability_migration-0.4.0rc1/tests/test_promql_esql_snapshots.py +786 -0
- elastic_observability_migration-0.4.0rc1/tests/test_promql_metamorphic.py +158 -0
- elastic_observability_migration-0.4.0rc1/tests/test_promql_property.py +205 -0
- elastic_observability_migration-0.4.0rc1/tests/test_query_yaml_snapshots.py +390 -0
- elastic_observability_migration-0.4.0rc1/tests/test_real_dashboard_translation_guards.py +321 -0
- elastic_observability_migration-0.4.0rc1/tests/test_redis_interaction_scenario.py +382 -0
- elastic_observability_migration-0.4.0rc1/tests/test_render_audit.py +540 -0
- elastic_observability_migration-0.4.0rc1/tests/test_render_audit_driver.py +302 -0
- elastic_observability_migration-0.4.0rc1/tests/test_render_audit_review_fixes.py +50 -0
- elastic_observability_migration-0.4.0rc1/tests/test_render_audit_selftest.py +130 -0
- elastic_observability_migration-0.4.0rc1/tests/test_render_audit_tab_selection.py +287 -0
- elastic_observability_migration-0.4.0rc1/tests/test_routing_artifacts.py +94 -0
- elastic_observability_migration-0.4.0rc1/tests/test_sample_catalog.py +106 -0
- elastic_observability_migration-0.4.0rc1/tests/test_sample_data.py +398 -0
- elastic_observability_migration-0.4.0rc1/tests/test_script_help_cli.py +133 -0
- elastic_observability_migration-0.4.0rc1/tests/test_selection_core.py +291 -0
- elastic_observability_migration-0.4.0rc1/tests/test_series_labels.py +91 -0
- elastic_observability_migration-0.4.0rc1/tests/test_setup_telemetry_data.py +463 -0
- elastic_observability_migration-0.4.0rc1/tests/test_skill_structure.py +319 -0
- elastic_observability_migration-0.4.0rc1/tests/test_smoke_uploaded_dashboards.py +1539 -0
- elastic_observability_migration-0.4.0rc1/tests/test_source_headers.py +75 -0
- elastic_observability_migration-0.4.0rc1/tests/test_telemetry_contract.py +2804 -0
- elastic_observability_migration-0.4.0rc1/tests/test_telemetry_data.py +1335 -0
- elastic_observability_migration-0.4.0rc1/tests/test_translation_seed_intake.py +327 -0
- elastic_observability_migration-0.4.0rc1/tests/test_translator_alias_quality.py +355 -0
- elastic_observability_migration-0.4.0rc1/tests/test_validate_panel_queries_script.py +73 -0
- elastic_observability_migration-0.4.0rc1/tests/test_validate_panels_from_yaml.py +50 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier.py +535 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_benchmark_gate.py +416 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_classifier.py +442 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_corpus_gate.py +84 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_corpus_manifest.py +105 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_dashboards_api.py +948 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_invariants.py +543 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_lens_fixtures.py +226 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_live_validate.py +323 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_mutations.py +111 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_scorecard.py +126 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_visual_diff.py +455 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_visual_regression.py +1122 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verifier_walker.py +708 -0
- elastic_observability_migration-0.4.0rc1/tests/test_verify_alert_rule_uploads_script.py +137 -0
- elastic_observability_migration-0.4.0rc1/tests/test_version_hygiene.py +40 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Elastic License 2.0
|
|
2
|
+
|
|
3
|
+
URL: https://www.elastic.co/licensing/elastic-license
|
|
4
|
+
|
|
5
|
+
## Acceptance
|
|
6
|
+
|
|
7
|
+
By using the software, you agree to all of the terms and conditions below.
|
|
8
|
+
|
|
9
|
+
## Copyright License
|
|
10
|
+
|
|
11
|
+
The licensor grants you a non-exclusive, royalty-free, worldwide,
|
|
12
|
+
non-sublicensable, non-transferable license to use, copy, distribute, make
|
|
13
|
+
available, and prepare derivative works of the software, in each case subject to
|
|
14
|
+
the limitations and conditions below.
|
|
15
|
+
|
|
16
|
+
## Limitations
|
|
17
|
+
|
|
18
|
+
You may not provide the software to third parties as a hosted or managed
|
|
19
|
+
service, where the service provides users with access to any substantial set of
|
|
20
|
+
the features or functionality of the software.
|
|
21
|
+
|
|
22
|
+
You may not move, change, disable, or circumvent the license key functionality
|
|
23
|
+
in the software, and you may not remove or obscure any functionality in the
|
|
24
|
+
software that is protected by the license key.
|
|
25
|
+
|
|
26
|
+
You may not alter, remove, or obscure any licensing, copyright, or other notices
|
|
27
|
+
of the licensor in the software. Any use of the licensor's trademarks is subject
|
|
28
|
+
to applicable law.
|
|
29
|
+
|
|
30
|
+
## Patents
|
|
31
|
+
|
|
32
|
+
The licensor grants you a license, under any patent claims the licensor can
|
|
33
|
+
license, or becomes able to license, to make, have made, use, sell, offer for
|
|
34
|
+
sale, import and have imported the software, in each case subject to the
|
|
35
|
+
limitations and conditions in this license. This license does not cover any
|
|
36
|
+
patent claims that you cause to be infringed by modifications or additions to
|
|
37
|
+
the software. If you or your company make any written claim that the software
|
|
38
|
+
infringes or contributes to infringement of any patent, your patent license for
|
|
39
|
+
the software granted under these terms ends immediately. If your company makes
|
|
40
|
+
such a claim, your patent license ends immediately for work on behalf of your
|
|
41
|
+
company.
|
|
42
|
+
|
|
43
|
+
## Notices
|
|
44
|
+
|
|
45
|
+
You must ensure that anyone who gets a copy of any part of the software from you
|
|
46
|
+
also gets a copy of these terms.
|
|
47
|
+
|
|
48
|
+
If you modify the software, you must include in any modified copies of the
|
|
49
|
+
software prominent notices stating that you have modified the software.
|
|
50
|
+
|
|
51
|
+
## No Other Rights
|
|
52
|
+
|
|
53
|
+
These terms do not imply any licenses other than those expressly granted in
|
|
54
|
+
these terms.
|
|
55
|
+
|
|
56
|
+
## Termination
|
|
57
|
+
|
|
58
|
+
If you use the software in violation of these terms, such use is not licensed,
|
|
59
|
+
and your licenses will automatically terminate. If the licensor provides you
|
|
60
|
+
with a notice of your violation, and you cease all violation of this license no
|
|
61
|
+
later than 30 days after you receive that notice, your licenses will be
|
|
62
|
+
reinstated retroactively. However, if you violate these terms after such
|
|
63
|
+
reinstatement, any additional violation of these terms will cause your licenses
|
|
64
|
+
to terminate automatically and permanently.
|
|
65
|
+
|
|
66
|
+
## No Liability
|
|
67
|
+
|
|
68
|
+
As far as the law allows, the software comes as is, without any warranty or
|
|
69
|
+
condition, and the licensor will not be liable to you for any damages arising
|
|
70
|
+
out of these terms or the use or nature of the software, under any kind of
|
|
71
|
+
legal claim.
|
|
72
|
+
|
|
73
|
+
## Definitions
|
|
74
|
+
|
|
75
|
+
The licensor is the entity offering these terms, and the software is the
|
|
76
|
+
software the licensor makes available under these terms, including any portion
|
|
77
|
+
of it.
|
|
78
|
+
|
|
79
|
+
you refers to the individual or entity agreeing to these terms.
|
|
80
|
+
|
|
81
|
+
your company is any legal entity, sole proprietorship, or other kind of
|
|
82
|
+
organization that you work for, plus all organizations that have control over,
|
|
83
|
+
are under the control of, or are under common control with that
|
|
84
|
+
organization. control means ownership of substantially all the assets of an
|
|
85
|
+
entity, or the power to direct its management and policies by vote, contract, or
|
|
86
|
+
otherwise. Control can be direct or indirect.
|
|
87
|
+
|
|
88
|
+
your licenses are all the licenses granted to you for the software under these
|
|
89
|
+
terms.
|
|
90
|
+
|
|
91
|
+
use means anything you do with the software requiring one of your licenses.
|
|
92
|
+
|
|
93
|
+
trademark means trademarks, service marks, and similar rights.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements.
|
|
2
|
+
# SPDX-License-Identifier: Elastic-2.0
|
|
3
|
+
|
|
4
|
+
include LICENSE
|
|
5
|
+
include NOTICE.txt
|
|
6
|
+
include THIRD_PARTY_NOTICES.md
|
|
7
|
+
include docs/licenses/dependencies.md
|
|
8
|
+
include docs/licenses/sbom.cdx.json
|
|
9
|
+
recursive-include licenses *.txt
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Observability Migration Platform
|
|
2
|
+
Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements.
|
|
3
|
+
|
|
4
|
+
This product includes software developed by Elasticsearch B.V.
|
|
5
|
+
|
|
6
|
+
First-party repository content is licensed under the Elastic License 2.0; see
|
|
7
|
+
LICENSE for the full license text.
|
|
8
|
+
|
|
9
|
+
Third-party material redistributed in this repository is listed in
|
|
10
|
+
THIRD_PARTY_NOTICES.md and remains governed by its upstream license terms.
|
|
11
|
+
Bundled third-party license texts are provided under licenses/.
|
|
12
|
+
|
|
13
|
+
The checked Python dependency environment is inventoried in
|
|
14
|
+
docs/licenses/dependencies.md and docs/licenses/sbom.cdx.json.
|
|
15
|
+
|
|
16
|
+
The checked Python dependency environment includes MPL-2.0 dependencies.
|
|
17
|
+
Source code for each is available from its upstream project:
|
|
18
|
+
|
|
19
|
+
- certifi: https://github.com/certifi/python-certifi
|
|
20
|
+
- fqdn: https://github.com/ypcrts/fqdn
|
|
21
|
+
- hypothesis: https://github.com/HypothesisWorks/hypothesis
|
|
22
|
+
- pathspec: https://github.com/cpburnz/python-pathspec
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: elastic-observability-migration
|
|
3
|
+
Version: 0.4.0rc1
|
|
4
|
+
Summary: Source-agnostic observability migration platform (Grafana, Datadog → Kibana).
|
|
5
|
+
Author: Elastic
|
|
6
|
+
License-Expression: Elastic-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/elastic/observability-migration-platform
|
|
8
|
+
Project-URL: Repository, https://github.com/elastic/observability-migration-platform
|
|
9
|
+
Project-URL: Issues, https://github.com/elastic/observability-migration-platform/issues
|
|
10
|
+
Requires-Python: >=3.11
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
License-File: NOTICE.txt
|
|
14
|
+
License-File: THIRD_PARTY_NOTICES.md
|
|
15
|
+
License-File: docs/licenses/dependencies.md
|
|
16
|
+
License-File: docs/licenses/sbom.cdx.json
|
|
17
|
+
License-File: licenses/Apache-2.0.txt
|
|
18
|
+
License-File: licenses/BSD-3-Clause-DataDog-integrations-core.txt
|
|
19
|
+
License-File: licenses/MIT-FUSAKLA-Prometheus2-grafana-dashboard.txt
|
|
20
|
+
License-File: licenses/MIT-strawgate-kb-yaml-to-lens.txt
|
|
21
|
+
Requires-Dist: grafana-client>=5.0.0
|
|
22
|
+
Requires-Dist: lark>=1.2.2
|
|
23
|
+
Requires-Dist: pydantic>=2.11.0
|
|
24
|
+
Requires-Dist: promql-parser>=0.7.0
|
|
25
|
+
Requires-Dist: pyyaml>=6.0
|
|
26
|
+
Requires-Dist: requests>=2.31.0
|
|
27
|
+
Provides-Extra: grafana
|
|
28
|
+
Requires-Dist: grafana-client>=5.0.0; extra == "grafana"
|
|
29
|
+
Requires-Dist: promql-parser>=0.7.0; extra == "grafana"
|
|
30
|
+
Provides-Extra: datadog
|
|
31
|
+
Requires-Dist: datadog-api-client; extra == "datadog"
|
|
32
|
+
Provides-Extra: kibana
|
|
33
|
+
Requires-Dist: kb-dashboard-cli==0.4.1; python_version >= "3.12" and extra == "kibana"
|
|
34
|
+
Requires-Dist: kb-dashboard-lint==0.4.1; python_version >= "3.12" and extra == "kibana"
|
|
35
|
+
Provides-Extra: dev
|
|
36
|
+
Requires-Dist: build>=1.3.0; extra == "dev"
|
|
37
|
+
Requires-Dist: hypothesis>=6.130.0; extra == "dev"
|
|
38
|
+
Requires-Dist: jsonschema>=4.25; extra == "dev"
|
|
39
|
+
Requires-Dist: pip-licenses>=5.0.0; extra == "dev"
|
|
40
|
+
Requires-Dist: cyclonedx-bom>=5.0.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pytest>=9.0.3; extra == "dev"
|
|
42
|
+
Requires-Dist: pytest-cov>=6.0.0; extra == "dev"
|
|
43
|
+
Requires-Dist: ruff>=0.15.11; extra == "dev"
|
|
44
|
+
Requires-Dist: mypy>=1.20.1; extra == "dev"
|
|
45
|
+
Requires-Dist: types-requests>=2.33.0.20260408; extra == "dev"
|
|
46
|
+
Requires-Dist: types-pyyaml>=6.0.12.20260408; extra == "dev"
|
|
47
|
+
Requires-Dist: pre-commit>=4.5.1; extra == "dev"
|
|
48
|
+
Requires-Dist: setuptools>=77; extra == "dev"
|
|
49
|
+
Requires-Dist: wheel; extra == "dev"
|
|
50
|
+
Provides-Extra: all
|
|
51
|
+
Requires-Dist: elastic-observability-migration[grafana]; extra == "all"
|
|
52
|
+
Requires-Dist: elastic-observability-migration[datadog]; extra == "all"
|
|
53
|
+
Requires-Dist: elastic-observability-migration[kibana]; extra == "all"
|
|
54
|
+
Provides-Extra: browser
|
|
55
|
+
Requires-Dist: playwright>=1.61.0; extra == "browser"
|
|
56
|
+
Dynamic: license-file
|
|
57
|
+
|
|
58
|
+
# Observability Migration Platform
|
|
59
|
+
|
|
60
|
+
[](https://github.com/elastic/observability-migration-platform/actions/workflows/tests.yml)
|
|
61
|
+
[](https://github.com/elastic/observability-migration-platform/actions/workflows/license-check.yml)
|
|
62
|
+
[](LICENSE)
|
|
63
|
+
[](https://www.python.org/downloads/)
|
|
64
|
+
|
|
65
|
+
Migrate Grafana and Datadog dashboards, alerts, and monitors into Kibana.
|
|
66
|
+
Unsupported translations are marked for manual review instead of being
|
|
67
|
+
silently dropped.
|
|
68
|
+
|
|
69
|
+
Use one CLI: **`obs-migrate`**.
|
|
70
|
+
|
|
71
|
+
Pre-1.0. Distributed as a Python package only — there is no standalone
|
|
72
|
+
binary. The package is not on PyPI yet, so install from a **pinned GitHub
|
|
73
|
+
release tag** (never `@main`) until publishing is enabled.
|
|
74
|
+
|
|
75
|
+
## Requirements
|
|
76
|
+
|
|
77
|
+
| Need | Detail |
|
|
78
|
+
|------|--------|
|
|
79
|
+
| OS | macOS or Linux (Windows is not supported) |
|
|
80
|
+
| Python | 3.11 or newer (3.11–3.13 recommended) |
|
|
81
|
+
| Installer | [`uv`](https://docs.astral.sh/uv/) on `PATH` (provides `uv` and `uvx`) |
|
|
82
|
+
|
|
83
|
+
You do not need to clone this repository. Install with the `[all]` extra so
|
|
84
|
+
Grafana, Datadog, and Kibana compile/lint dependencies are included together.
|
|
85
|
+
|
|
86
|
+
## Quick start
|
|
87
|
+
|
|
88
|
+
Set the package source once, then reuse it:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Pin the latest release tag (example below). See:
|
|
92
|
+
# https://github.com/elastic/observability-migration-platform/releases
|
|
93
|
+
PKG='elastic-observability-migration[all]@git+https://github.com/elastic/observability-migration-platform.git@v0.3.0'
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
When the package is on PyPI, use:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
PKG='elastic-observability-migration[all]'
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 1. Check the install
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
uvx --from "$PKG" obs-migrate doctor
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
`doctor` checks your Python version, required imports, optional extras,
|
|
109
|
+
`uv`/`uvx`, and Kibana compile tools. Exit code `0` means ready; a non-zero
|
|
110
|
+
exit prints what to fix.
|
|
111
|
+
|
|
112
|
+
### 2. Try a bundled sample (offline)
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
uvx --from "$PKG" obs-migrate list-samples
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Copy a sample’s `input_dir` from the JSON output, then:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
uvx --from "$PKG" obs-migrate migrate \
|
|
122
|
+
--source grafana --input-mode files \
|
|
123
|
+
--input-dir "<sample-input_dir>" \
|
|
124
|
+
--output-dir ./out --assets dashboards --compile
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 3. Migrate your assets
|
|
128
|
+
|
|
129
|
+
Use the same `migrate` command with your exported Grafana or Datadog JSON
|
|
130
|
+
(`--input-dir`), or use `--input-mode api` with credentials. For upload,
|
|
131
|
+
verification, and the full flag reference, see
|
|
132
|
+
[`docs/command-contract.md`](docs/command-contract.md).
|
|
133
|
+
|
|
134
|
+
## Other install options
|
|
135
|
+
|
|
136
|
+
| When | How |
|
|
137
|
+
|------|-----|
|
|
138
|
+
| Persistent virtualenv | `python3 -m venv .venv && .venv/bin/pip install "$PKG"` then `.venv/bin/obs-migrate …` |
|
|
139
|
+
| Contributor checkout | `make sync` (or `uv sync --locked --all-extras`) then `uv run obs-migrate …` |
|
|
140
|
+
| Narrower extras | Use `[grafana]`, `[datadog]`, or `[kibana]` instead of `[all]` |
|
|
141
|
+
|
|
142
|
+
On **Python 3.11**, Kibana compile tools are not installed into the
|
|
143
|
+
environment (they require 3.12+). `doctor` reports `uvx fallback`, and `uv`
|
|
144
|
+
must remain on `PATH`.
|
|
145
|
+
|
|
146
|
+
The older `grafana-migrate` and `datadog-migrate` commands still work as
|
|
147
|
+
compatibility aliases. Prefer `obs-migrate`.
|
|
148
|
+
|
|
149
|
+
## Compatibility
|
|
150
|
+
|
|
151
|
+
| Area | Detail |
|
|
152
|
+
|------|--------|
|
|
153
|
+
| OS | Supported on macOS and Linux. CI runs on Ubuntu; packaging is also smoke-tested on macOS. Windows is not supported. |
|
|
154
|
+
| Python | Supported: 3.11+. CI pytest: 3.11, 3.12, 3.13. Clean-install smoke in CI: 3.11 and 3.12 (also verified on 3.13 and 3.14). Python 3.10 and older are rejected. |
|
|
155
|
+
| Kibana | Elastic Serverless and ES\|QL-capable Stack — [`docs/targets/kibana.md`](docs/targets/kibana.md) |
|
|
156
|
+
| Grafana | Dashboard JSON v1; alerts via the unified alerting API — [`docs/sources/grafana.md`](docs/sources/grafana.md) |
|
|
157
|
+
| Datadog | Dashboards and monitors via the public API — [`docs/sources/datadog.md`](docs/sources/datadog.md) |
|
|
158
|
+
|
|
159
|
+
## Documentation
|
|
160
|
+
|
|
161
|
+
| Doc | Use when |
|
|
162
|
+
| --- | --- |
|
|
163
|
+
| [`docs/README.md`](docs/README.md) | Docs index |
|
|
164
|
+
| [`docs/command-contract.md`](docs/command-contract.md) | Canonical CLI commands and install detail |
|
|
165
|
+
| [`docs/known-limitations.md`](docs/known-limitations.md) | Known gaps |
|
|
166
|
+
| [`docs/architecture.md`](docs/architecture.md) | How the pipeline fits together |
|
|
167
|
+
| [`CONTRIBUTING.md`](CONTRIBUTING.md) | Dev setup, releasing, and PR expectations |
|
|
168
|
+
| [`SUPPORT.md`](SUPPORT.md) | Getting help |
|
|
169
|
+
| [`SECURITY.md`](SECURITY.md) | Vulnerability reporting |
|
|
170
|
+
|
|
171
|
+
Bugs and feature requests:
|
|
172
|
+
[open an issue](https://github.com/elastic/observability-migration-platform/issues).
|
|
173
|
+
|
|
174
|
+
## Licensing
|
|
175
|
+
|
|
176
|
+
First-party content is source-available under the Elastic License 2.0
|
|
177
|
+
(`ELv2`); see [`LICENSE`](LICENSE). Redistributed third-party material is
|
|
178
|
+
listed in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). CI runs a
|
|
179
|
+
locked license check and CycloneDX SBOM — see
|
|
180
|
+
[`.github/workflows/license-check.yml`](.github/workflows/license-check.yml).
|
|
181
|
+
|
|
182
|
+
## Trademarks
|
|
183
|
+
|
|
184
|
+
Grafana is a trademark of Raintank, Inc. d/b/a Grafana Labs. Datadog is a
|
|
185
|
+
trademark of Datadog, Inc. Prometheus and Kubernetes are trademarks of
|
|
186
|
+
The Linux Foundation. Kibana and Elastic are trademarks of Elasticsearch
|
|
187
|
+
B.V. All other trademarks are the property of their respective owners.
|
|
188
|
+
Use of these names here is solely for interoperability and identification
|
|
189
|
+
and does not imply affiliation or endorsement.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Observability Migration Platform
|
|
2
|
+
|
|
3
|
+
[](https://github.com/elastic/observability-migration-platform/actions/workflows/tests.yml)
|
|
4
|
+
[](https://github.com/elastic/observability-migration-platform/actions/workflows/license-check.yml)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://www.python.org/downloads/)
|
|
7
|
+
|
|
8
|
+
Migrate Grafana and Datadog dashboards, alerts, and monitors into Kibana.
|
|
9
|
+
Unsupported translations are marked for manual review instead of being
|
|
10
|
+
silently dropped.
|
|
11
|
+
|
|
12
|
+
Use one CLI: **`obs-migrate`**.
|
|
13
|
+
|
|
14
|
+
Pre-1.0. Distributed as a Python package only — there is no standalone
|
|
15
|
+
binary. The package is not on PyPI yet, so install from a **pinned GitHub
|
|
16
|
+
release tag** (never `@main`) until publishing is enabled.
|
|
17
|
+
|
|
18
|
+
## Requirements
|
|
19
|
+
|
|
20
|
+
| Need | Detail |
|
|
21
|
+
|------|--------|
|
|
22
|
+
| OS | macOS or Linux (Windows is not supported) |
|
|
23
|
+
| Python | 3.11 or newer (3.11–3.13 recommended) |
|
|
24
|
+
| Installer | [`uv`](https://docs.astral.sh/uv/) on `PATH` (provides `uv` and `uvx`) |
|
|
25
|
+
|
|
26
|
+
You do not need to clone this repository. Install with the `[all]` extra so
|
|
27
|
+
Grafana, Datadog, and Kibana compile/lint dependencies are included together.
|
|
28
|
+
|
|
29
|
+
## Quick start
|
|
30
|
+
|
|
31
|
+
Set the package source once, then reuse it:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Pin the latest release tag (example below). See:
|
|
35
|
+
# https://github.com/elastic/observability-migration-platform/releases
|
|
36
|
+
PKG='elastic-observability-migration[all]@git+https://github.com/elastic/observability-migration-platform.git@v0.3.0'
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
When the package is on PyPI, use:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
PKG='elastic-observability-migration[all]'
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 1. Check the install
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
uvx --from "$PKG" obs-migrate doctor
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`doctor` checks your Python version, required imports, optional extras,
|
|
52
|
+
`uv`/`uvx`, and Kibana compile tools. Exit code `0` means ready; a non-zero
|
|
53
|
+
exit prints what to fix.
|
|
54
|
+
|
|
55
|
+
### 2. Try a bundled sample (offline)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
uvx --from "$PKG" obs-migrate list-samples
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Copy a sample’s `input_dir` from the JSON output, then:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
uvx --from "$PKG" obs-migrate migrate \
|
|
65
|
+
--source grafana --input-mode files \
|
|
66
|
+
--input-dir "<sample-input_dir>" \
|
|
67
|
+
--output-dir ./out --assets dashboards --compile
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 3. Migrate your assets
|
|
71
|
+
|
|
72
|
+
Use the same `migrate` command with your exported Grafana or Datadog JSON
|
|
73
|
+
(`--input-dir`), or use `--input-mode api` with credentials. For upload,
|
|
74
|
+
verification, and the full flag reference, see
|
|
75
|
+
[`docs/command-contract.md`](docs/command-contract.md).
|
|
76
|
+
|
|
77
|
+
## Other install options
|
|
78
|
+
|
|
79
|
+
| When | How |
|
|
80
|
+
|------|-----|
|
|
81
|
+
| Persistent virtualenv | `python3 -m venv .venv && .venv/bin/pip install "$PKG"` then `.venv/bin/obs-migrate …` |
|
|
82
|
+
| Contributor checkout | `make sync` (or `uv sync --locked --all-extras`) then `uv run obs-migrate …` |
|
|
83
|
+
| Narrower extras | Use `[grafana]`, `[datadog]`, or `[kibana]` instead of `[all]` |
|
|
84
|
+
|
|
85
|
+
On **Python 3.11**, Kibana compile tools are not installed into the
|
|
86
|
+
environment (they require 3.12+). `doctor` reports `uvx fallback`, and `uv`
|
|
87
|
+
must remain on `PATH`.
|
|
88
|
+
|
|
89
|
+
The older `grafana-migrate` and `datadog-migrate` commands still work as
|
|
90
|
+
compatibility aliases. Prefer `obs-migrate`.
|
|
91
|
+
|
|
92
|
+
## Compatibility
|
|
93
|
+
|
|
94
|
+
| Area | Detail |
|
|
95
|
+
|------|--------|
|
|
96
|
+
| OS | Supported on macOS and Linux. CI runs on Ubuntu; packaging is also smoke-tested on macOS. Windows is not supported. |
|
|
97
|
+
| Python | Supported: 3.11+. CI pytest: 3.11, 3.12, 3.13. Clean-install smoke in CI: 3.11 and 3.12 (also verified on 3.13 and 3.14). Python 3.10 and older are rejected. |
|
|
98
|
+
| Kibana | Elastic Serverless and ES\|QL-capable Stack — [`docs/targets/kibana.md`](docs/targets/kibana.md) |
|
|
99
|
+
| Grafana | Dashboard JSON v1; alerts via the unified alerting API — [`docs/sources/grafana.md`](docs/sources/grafana.md) |
|
|
100
|
+
| Datadog | Dashboards and monitors via the public API — [`docs/sources/datadog.md`](docs/sources/datadog.md) |
|
|
101
|
+
|
|
102
|
+
## Documentation
|
|
103
|
+
|
|
104
|
+
| Doc | Use when |
|
|
105
|
+
| --- | --- |
|
|
106
|
+
| [`docs/README.md`](docs/README.md) | Docs index |
|
|
107
|
+
| [`docs/command-contract.md`](docs/command-contract.md) | Canonical CLI commands and install detail |
|
|
108
|
+
| [`docs/known-limitations.md`](docs/known-limitations.md) | Known gaps |
|
|
109
|
+
| [`docs/architecture.md`](docs/architecture.md) | How the pipeline fits together |
|
|
110
|
+
| [`CONTRIBUTING.md`](CONTRIBUTING.md) | Dev setup, releasing, and PR expectations |
|
|
111
|
+
| [`SUPPORT.md`](SUPPORT.md) | Getting help |
|
|
112
|
+
| [`SECURITY.md`](SECURITY.md) | Vulnerability reporting |
|
|
113
|
+
|
|
114
|
+
Bugs and feature requests:
|
|
115
|
+
[open an issue](https://github.com/elastic/observability-migration-platform/issues).
|
|
116
|
+
|
|
117
|
+
## Licensing
|
|
118
|
+
|
|
119
|
+
First-party content is source-available under the Elastic License 2.0
|
|
120
|
+
(`ELv2`); see [`LICENSE`](LICENSE). Redistributed third-party material is
|
|
121
|
+
listed in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). CI runs a
|
|
122
|
+
locked license check and CycloneDX SBOM — see
|
|
123
|
+
[`.github/workflows/license-check.yml`](.github/workflows/license-check.yml).
|
|
124
|
+
|
|
125
|
+
## Trademarks
|
|
126
|
+
|
|
127
|
+
Grafana is a trademark of Raintank, Inc. d/b/a Grafana Labs. Datadog is a
|
|
128
|
+
trademark of Datadog, Inc. Prometheus and Kubernetes are trademarks of
|
|
129
|
+
The Linux Foundation. Kibana and Elastic are trademarks of Elasticsearch
|
|
130
|
+
B.V. All other trademarks are the property of their respective owners.
|
|
131
|
+
Use of these names here is solely for interoperability and identification
|
|
132
|
+
and does not imply affiliation or endorsement.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Third-Party Notices
|
|
2
|
+
|
|
3
|
+
This file records third-party material redistributed in the public repository
|
|
4
|
+
and third-party tooling used to produce shipped generated artifacts.
|
|
5
|
+
|
|
6
|
+
- `LICENSE` applies only to first-party repository content.
|
|
7
|
+
- Third-party material listed below remains governed by its upstream license
|
|
8
|
+
terms and is not relicensed by `LICENSE`.
|
|
9
|
+
- Bundled third-party license texts live in `licenses/`.
|
|
10
|
+
- Python packages resolved into the checked dependency environment from
|
|
11
|
+
`pyproject.toml` and `uv.lock` are not redistributed in source form and are
|
|
12
|
+
therefore not enumerated here. Their licenses are inventoried in
|
|
13
|
+
`docs/licenses/dependencies.md` and enforced by the license-compliance job
|
|
14
|
+
described at the bottom of this file.
|
|
15
|
+
- Project-authored fixtures and excluded evaluation assets are not listed here.
|
|
16
|
+
|
|
17
|
+
## Bundled Datadog Dashboards (`DataDog/integrations-core`)
|
|
18
|
+
|
|
19
|
+
- Upstream repository: <https://github.com/DataDog/integrations-core>
|
|
20
|
+
- License: BSD-3-Clause
|
|
21
|
+
- Upstream copyright: `Copyright (c) 2016, Datadog, Inc. All rights reserved.`
|
|
22
|
+
- Bundled license text: `licenses/BSD-3-Clause-DataDog-integrations-core.txt`
|
|
23
|
+
- Upstream `NOTICE` file: none shipped by the upstream repository at the time
|
|
24
|
+
of snapshot; BSD-3-Clause has no NOTICE obligation.
|
|
25
|
+
- Redistributed files:
|
|
26
|
+
|
|
27
|
+
- `infra/datadog/dashboards/integrations/docker.json`
|
|
28
|
+
Source: `docker_daemon/assets/dashboards/docker_dashboard.json`
|
|
29
|
+
- `infra/datadog/dashboards/integrations/kubernetes.json`
|
|
30
|
+
Source: `kubernetes/assets/dashboards/kubernetes_dashboard.json`
|
|
31
|
+
- `infra/datadog/dashboards/integrations/redis.json`
|
|
32
|
+
Source: `redisdb/assets/dashboards/overview.json`
|
|
33
|
+
- `infra/datadog/dashboards/integrations/nginx_overview.json`
|
|
34
|
+
Source: Datadog `nginx` dashboard assets in `DataDog/integrations-core`
|
|
35
|
+
- `infra/datadog/dashboards/integrations/postgres.json`
|
|
36
|
+
Source: Datadog `postgres` dashboard assets in `DataDog/integrations-core`
|
|
37
|
+
|
|
38
|
+
Retain the applicable BSD notice and disclaimer when redistributing these
|
|
39
|
+
files. The Datadog name and marks may not be used to imply endorsement.
|
|
40
|
+
|
|
41
|
+
## Bundled Grafana Dashboards (Apache-2.0)
|
|
42
|
+
|
|
43
|
+
- License: Apache License, Version 2.0
|
|
44
|
+
- Bundled license text: `licenses/Apache-2.0.txt`
|
|
45
|
+
- Upstream `NOTICE` files: none shipped by either upstream repository at the
|
|
46
|
+
time of snapshot; Apache-2.0 §4(c) is satisfied by carrying the full
|
|
47
|
+
`Apache-2.0` license text and preserving the upstream copyright lines below.
|
|
48
|
+
- Redistributed files:
|
|
49
|
+
|
|
50
|
+
- `infra/grafana/dashboards/node-exporter-full.json`
|
|
51
|
+
Upstream repository: <https://github.com/rfmoz/grafana-dashboards>
|
|
52
|
+
Upstream dashboard listing: <https://grafana.com/grafana/dashboards/1860>
|
|
53
|
+
Upstream copyright: the repository's `LICENSE` carries the Apache-2.0
|
|
54
|
+
template copyright placeholder (unfilled); contributions are attributed to
|
|
55
|
+
the `rfmoz/grafana-dashboards` maintainers and contributors.
|
|
56
|
+
- `infra/grafana/dashboards/k8s-views-global.json`
|
|
57
|
+
Upstream repository:
|
|
58
|
+
<https://github.com/dotdc/grafana-dashboards-kubernetes>
|
|
59
|
+
Upstream dashboard listing: <https://grafana.com/grafana/dashboards/15757>
|
|
60
|
+
Upstream copyright: `Copyright 2020 David Calvert`.
|
|
61
|
+
|
|
62
|
+
## Bundled Grafana Dashboards (MIT)
|
|
63
|
+
|
|
64
|
+
- License: MIT License
|
|
65
|
+
- Bundled license text:
|
|
66
|
+
`licenses/MIT-FUSAKLA-Prometheus2-grafana-dashboard.txt`
|
|
67
|
+
- Upstream copyright: `Copyright (c) 2017 Martin Chodur`
|
|
68
|
+
- Redistributed files:
|
|
69
|
+
|
|
70
|
+
- `infra/grafana/dashboards/prometheus-all.json`
|
|
71
|
+
Upstream repository:
|
|
72
|
+
<https://github.com/FUSAKLA/Prometheus2-grafana-dashboard>
|
|
73
|
+
Upstream dashboard listing: <https://grafana.com/grafana/dashboards/3681>
|
|
74
|
+
|
|
75
|
+
## Generated Artifacts With Separate Provenance
|
|
76
|
+
|
|
77
|
+
The tracked files below are machine-generated from the upstream
|
|
78
|
+
`strawgate/kb-yaml-to-lens` project, which publishes `kb-dashboard-core`
|
|
79
|
+
under the MIT License:
|
|
80
|
+
|
|
81
|
+
- Upstream project: <https://github.com/strawgate/kb-yaml-to-lens>
|
|
82
|
+
- Upstream package used to generate the tracked files:
|
|
83
|
+
`kb-dashboard-core` (<https://pypi.org/project/kb-dashboard-core/>)
|
|
84
|
+
- Upstream copyright:
|
|
85
|
+
`Copyright (c) 2025 kb-yaml-to-lens contributors`
|
|
86
|
+
- Bundled license text: `licenses/MIT-strawgate-kb-yaml-to-lens.txt`
|
|
87
|
+
|
|
88
|
+
Generated files tracked in this repository:
|
|
89
|
+
|
|
90
|
+
- `docs/dashboards/schema.json` — regenerated from `kb-dashboard-core` by
|
|
91
|
+
`scripts/generate_dashboard_schema.sh`.
|
|
92
|
+
- `docs/dashboards/schema.toon` — regenerated from the same source when
|
|
93
|
+
`npx` is available.
|
|
94
|
+
|
|
95
|
+
The local dashboard workflow may also invoke `kb-dashboard-cli` and
|
|
96
|
+
`kb-dashboard-lint`, but those tools are not themselves tracked artifacts in
|
|
97
|
+
this repository.
|
|
98
|
+
|
|
99
|
+
### `elastic-observability-migration[kibana]` Extra
|
|
100
|
+
|
|
101
|
+
The optional `[kibana]` dependency group (installed via
|
|
102
|
+
`pip install ".[kibana]"`, resolved only on **Python 3.12+** per the
|
|
103
|
+
`pyproject.toml` environment markers) declares the following packages so the
|
|
104
|
+
Kibana compile/lint tooling can be installed in-environment instead of fetched
|
|
105
|
+
at runtime via `uvx`:
|
|
106
|
+
|
|
107
|
+
- `kb-dashboard-cli`, `kb-dashboard-lint`, and their transitive
|
|
108
|
+
`kb-dashboard-core`, `kb-dashboard-tools`, and `kb-dashboard-docs` — all
|
|
109
|
+
published by `strawgate/kb-yaml-to-lens` under the **MIT License**
|
|
110
|
+
(bundled text: `licenses/MIT-strawgate-kb-yaml-to-lens.txt`).
|
|
111
|
+
- Their further transitive runtime dependencies (e.g. `click` (BSD-3-Clause),
|
|
112
|
+
`rich-click` (MIT), `elasticsearch` (Apache-2.0), `pygls` (Apache-2.0),
|
|
113
|
+
`lsprotocol` (MIT)) are likewise permissively licensed and compatible with
|
|
114
|
+
Elastic License 2.0 redistribution.
|
|
115
|
+
|
|
116
|
+
These packages are **not** redistributed in source form by this repository and,
|
|
117
|
+
because they resolve only on Python 3.12+, they are **not** present in the
|
|
118
|
+
Python 3.11 dependency inventory/SBOM described below. They remain governed by
|
|
119
|
+
their upstream licenses and are installed directly from PyPI into the user's
|
|
120
|
+
environment. Revisit this section with legal before changing the distribution
|
|
121
|
+
model (for example vendoring or bundling these tools into a shipped artifact).
|
|
122
|
+
|
|
123
|
+
## Python Dependency Environment
|
|
124
|
+
|
|
125
|
+
Python packages resolved from `pyproject.toml` and `uv.lock` are not
|
|
126
|
+
redistributed in source form by this repository — they are installed into a
|
|
127
|
+
locked Python 3.11 dependency environment for local verification and CI.
|
|
128
|
+
Their licenses are captured in two places:
|
|
129
|
+
|
|
130
|
+
- [`docs/licenses/dependencies.md`](docs/licenses/dependencies.md) — a
|
|
131
|
+
human-readable license inventory produced by the MIT-licensed
|
|
132
|
+
[`pip-licenses`](https://pypi.org/project/pip-licenses/) tool.
|
|
133
|
+
- [`docs/licenses/sbom.cdx.json`](docs/licenses/sbom.cdx.json) — a
|
|
134
|
+
machine-readable CycloneDX 1.6 SBOM produced by the Apache-2.0-licensed
|
|
135
|
+
[`cyclonedx-bom`](https://pypi.org/project/cyclonedx-bom/) tool.
|
|
136
|
+
|
|
137
|
+
Both files are regenerated deterministically from the locked Python 3.11
|
|
138
|
+
dependency environment and their drift is enforced on every pull request by
|
|
139
|
+
`.github/workflows/license-check.yml`, which also uploads the SBOM as a
|
|
140
|
+
workflow artifact named `sbom-cyclonedx`.
|
|
141
|
+
|
|
142
|
+
Because the gate runs on Python 3.11, the `[kibana]` extra's `kb-dashboard-*`
|
|
143
|
+
tools (gated to Python 3.12+) are intentionally absent from this 3.11 inventory
|
|
144
|
+
and SBOM; their licenses are documented in the `elastic-observability-migration[kibana]` Extra
|
|
145
|
+
section above.
|
|
146
|
+
|
|
147
|
+
To regenerate locally (requires Python 3.11 to match CI):
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
UV_PROJECT_ENVIRONMENT=.venv-licensing \
|
|
151
|
+
uv sync --locked --python 3.11 --all-extras
|
|
152
|
+
.venv-licensing/bin/python scripts/check_licenses.py --write-report
|
|
153
|
+
.venv-licensing/bin/cyclonedx-py environment \
|
|
154
|
+
--output-reproducible \
|
|
155
|
+
--pyproject pyproject.toml \
|
|
156
|
+
-o docs/licenses/sbom.cdx.json
|
|
157
|
+
```
|