detectkit 0.52.0__tar.gz → 0.52.1__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.
Files changed (155) hide show
  1. {detectkit-0.52.0/detectkit.egg-info → detectkit-0.52.1}/PKG-INFO +1 -1
  2. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/__init__.py +1 -1
  3. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/alerting.md +1 -1
  4. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/overview.md +5 -1
  5. {detectkit-0.52.0 → detectkit-0.52.1/detectkit.egg-info}/PKG-INFO +1 -1
  6. {detectkit-0.52.0 → detectkit-0.52.1}/LICENSE +0 -0
  7. {detectkit-0.52.0 → detectkit-0.52.1}/MANIFEST.in +0 -0
  8. {detectkit-0.52.0 → detectkit-0.52.1}/README.md +0 -0
  9. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/__init__.py +0 -0
  10. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/__init__.py +0 -0
  11. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/base.py +0 -0
  12. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/branding.py +0 -0
  13. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/email.py +0 -0
  14. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/factory.py +0 -0
  15. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/mattermost.py +0 -0
  16. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/slack.py +0 -0
  17. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/telegram.py +0 -0
  18. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/channels/webhook.py +0 -0
  19. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/__init__.py +0 -0
  20. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_base.py +0 -0
  21. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_cooldown.py +0 -0
  22. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_decision.py +0 -0
  23. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_dispatch.py +0 -0
  24. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_recovery.py +0 -0
  25. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_replay.py +0 -0
  26. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/_types.py +0 -0
  27. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/alerting/orchestrator/orchestrator.py +0 -0
  28. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/__init__.py +0 -0
  29. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/_base.py +0 -0
  30. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/_types.py +0 -0
  31. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/autotuner.py +0 -0
  32. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/config_emitter.py +0 -0
  33. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/crossval.py +0 -0
  34. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/detector_select.py +0 -0
  35. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/distribution.py +0 -0
  36. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/grid_search.py +0 -0
  37. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/labels.py +0 -0
  38. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/result.py +0 -0
  39. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/runner.py +0 -0
  40. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/scoring.py +0 -0
  41. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/seasonality_search.py +0 -0
  42. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/settings.py +0 -0
  43. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/autotune/window_select.py +0 -0
  44. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/__init__.py +0 -0
  45. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/_output.py +0 -0
  46. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/CLAUDE.section.md +0 -0
  47. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/autotune.md +0 -0
  48. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/cli.md +0 -0
  49. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/detectors.md +0 -0
  50. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/metrics.md +0 -0
  51. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/rules/project.md +0 -0
  52. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-autotune/SKILL.md +0 -0
  53. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-feedback/SKILL.md +0 -0
  54. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-new-metric/SKILL.md +0 -0
  55. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-setup-project/SKILL.md +0 -0
  56. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/assets/claude/skills/dtk-tune/SKILL.md +0 -0
  57. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/__init__.py +0 -0
  58. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/autotune.py +0 -0
  59. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/clean.py +0 -0
  60. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/init.py +0 -0
  61. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/init_claude.py +0 -0
  62. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/osi.py +0 -0
  63. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/run.py +0 -0
  64. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/test_alert.py +0 -0
  65. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/tune.py +0 -0
  66. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/ui.py +0 -0
  67. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/commands/unlock.py +0 -0
  68. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/cli/main.py +0 -0
  69. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/__init__.py +0 -0
  70. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/metric_config.py +0 -0
  71. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/metric_io.py +0 -0
  72. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/profile.py +0 -0
  73. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/project_config.py +0 -0
  74. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/config/validator.py +0 -0
  75. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/core/__init__.py +0 -0
  76. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/core/interval.py +0 -0
  77. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/core/models.py +0 -0
  78. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/__init__.py +0 -0
  79. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/_sql_manager.py +0 -0
  80. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/clickhouse_manager.py +0 -0
  81. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/__init__.py +0 -0
  82. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_alert_states.py +0 -0
  83. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_autotune_runs.py +0 -0
  84. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_base.py +0 -0
  85. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_datapoints.py +0 -0
  86. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_detections.py +0 -0
  87. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_maintenance.py +0 -0
  88. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_metrics.py +0 -0
  89. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_schema.py +0 -0
  90. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/_tasks.py +0 -0
  91. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/internal_tables/manager.py +0 -0
  92. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/manager.py +0 -0
  93. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/mysql_manager.py +0 -0
  94. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/postgres_manager.py +0 -0
  95. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/database/tables.py +0 -0
  96. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/__init__.py +0 -0
  97. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/base.py +0 -0
  98. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/factory.py +0 -0
  99. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/seasonality.py +0 -0
  100. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/__init__.py +0 -0
  101. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/_windowed.py +0 -0
  102. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/autoreg.py +0 -0
  103. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/iqr.py +0 -0
  104. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/mad.py +0 -0
  105. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/manual_bounds.py +0 -0
  106. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/detectors/statistical/zscore.py +0 -0
  107. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/loaders/__init__.py +0 -0
  108. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/loaders/metric_loader.py +0 -0
  109. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/loaders/query_template.py +0 -0
  110. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/__init__.py +0 -0
  111. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/error_dispatch.py +0 -0
  112. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/__init__.py +0 -0
  113. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_alert_step.py +0 -0
  114. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_base.py +0 -0
  115. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_detect_step.py +0 -0
  116. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_load_step.py +0 -0
  117. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/_types.py +0 -0
  118. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/orchestration/task_manager/manager.py +0 -0
  119. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/reporting/__init__.py +0 -0
  120. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/reporting/assets/report.js +0 -0
  121. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/reporting/builder.py +0 -0
  122. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/reporting/html_report.py +0 -0
  123. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/__init__.py +0 -0
  124. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/errors.py +0 -0
  125. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/exporter.py +0 -0
  126. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/importer.py +0 -0
  127. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/osi_model.py +0 -0
  128. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/semantic/query_gen.py +0 -0
  129. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/__init__.py +0 -0
  130. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/assets/tune.js +0 -0
  131. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/config_writer.py +0 -0
  132. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/html.py +0 -0
  133. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/payload.py +0 -0
  134. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/tuning/server.py +0 -0
  135. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/__init__.py +0 -0
  136. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/assets/ui.js +0 -0
  137. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/html.py +0 -0
  138. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/jobs.py +0 -0
  139. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/metric_files.py +0 -0
  140. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/overview.py +0 -0
  141. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/ui/server.py +0 -0
  142. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/__init__.py +0 -0
  143. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/datetime_utils.py +0 -0
  144. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/env_interpolation.py +0 -0
  145. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/json_utils.py +0 -0
  146. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit/utils/stats.py +0 -0
  147. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/SOURCES.txt +0 -0
  148. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/dependency_links.txt +0 -0
  149. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/entry_points.txt +0 -0
  150. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/requires.txt +0 -0
  151. {detectkit-0.52.0 → detectkit-0.52.1}/detectkit.egg-info/top_level.txt +0 -0
  152. {detectkit-0.52.0 → detectkit-0.52.1}/pyproject.toml +0 -0
  153. {detectkit-0.52.0 → detectkit-0.52.1}/requirements.txt +0 -0
  154. {detectkit-0.52.0 → detectkit-0.52.1}/setup.cfg +0 -0
  155. {detectkit-0.52.0 → detectkit-0.52.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: detectkit
3
- Version: 0.52.0
3
+ Version: 0.52.1
4
4
  Summary: Metric monitoring with automatic anomaly detection
5
5
  Author: detectkit team
6
6
  License: MIT
@@ -4,7 +4,7 @@ detectk - Anomaly Detection for Time-Series Metrics
4
4
  A Python library for data analysts and engineers to monitor metrics with automatic anomaly detection.
5
5
  """
6
6
 
7
- __version__ = "0.52.0"
7
+ __version__ = "0.52.1"
8
8
 
9
9
  from detectkit.core.interval import Interval
10
10
  from detectkit.core.models import ColumnDefinition, TableModel
@@ -360,7 +360,7 @@ referenced by path). Key variables:
360
360
  | `{expected_range}` | one-sided-aware band (`>= 7.00`, `<= 1.10`, `[lo, hi]`, `N/A`) |
361
361
  | `{detector_name}`, `{detector_count}` | who fired (`"N detectors"` for multi) |
362
362
  | `{min_detectors}` / `{direction_policy}` / `{consecutive_required}` | the configured rule |
363
- | `{rule_display}` | full rule chip (legacy `min_detectors=… · direction=… · consecutive=…`, or also naming `anomaly_window`/`min_anomaly_share` when configured); recovery always renders the legacy form |
363
+ | `{rule_display}` | full rule chip (legacy `min_detectors=… · direction=… · consecutive=…`, or also naming `anomaly_window`/`min_anomaly_share` when configured — on recovery too, so fire and recovery name one rule) |
364
364
  | `{window_points}` / `{window_matched}` | fraction-rule window size / matched count (empty unless configured / fired by it) |
365
365
  | `{direction}`, `{severity}` | observed values |
366
366
  | `{consecutive_count}` | **true** streak length (resolved at fire time, not capped at the rule) |
@@ -68,6 +68,8 @@ separate from the `data_database` your queries read from.
68
68
  - `zscore` — mean/std; for clean, normally distributed data.
69
69
  - `iqr` — interquartile range; for skewed distributions / percentile metrics.
70
70
  - `manual_bounds` — fixed upper/lower thresholds (SLAs); no window, instant.
71
+ - `autoreg` — prediction-based AR(p) on a trailing window; for fast-moving,
72
+ non-seasonal metrics and shape anomalies; stabilization on by default.
71
73
 
72
74
  `mad`, `zscore`, `iqr` share one windowed implementation, so they accept an
73
75
  identical parameter set (window, seasonality grouping, preprocessing, recency
@@ -78,7 +80,9 @@ weighting, detrending). See `detectors.md`.
78
80
  An **alert** is the primary entity; a detector anomaly is secondary evidence
79
81
  that a rule interprets. The rule is a per-point **quorum** (`min_detectors`
80
82
  detectors agreeing under a `direction` policy) that must hold for
81
- `consecutive_anomalies` grid-adjacent points. Notifications lead with the alert
83
+ `consecutive_anomalies` grid-adjacent points or, optionally, for a share of
84
+ a trailing window (`anomaly_window` + `min_anomaly_share`, OR-ed with the
85
+ consecutive rule). Notifications lead with the alert
82
86
  and the rule it fired on, with the anomaly shown as evidence. See
83
87
  `alerting.md`.
84
88
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: detectkit
3
- Version: 0.52.0
3
+ Version: 0.52.1
4
4
  Summary: Metric monitoring with automatic anomaly detection
5
5
  Author: detectkit team
6
6
  License: MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes