detectkit 0.13.0__tar.gz → 0.13.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 (104) hide show
  1. {detectkit-0.13.0/detectkit.egg-info → detectkit-0.13.1}/PKG-INFO +1 -1
  2. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/__init__.py +1 -1
  3. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/rules/alerting.md +4 -2
  4. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/rules/metrics.md +1 -0
  5. {detectkit-0.13.0 → detectkit-0.13.1/detectkit.egg-info}/PKG-INFO +1 -1
  6. {detectkit-0.13.0 → detectkit-0.13.1}/LICENSE +0 -0
  7. {detectkit-0.13.0 → detectkit-0.13.1}/MANIFEST.in +0 -0
  8. {detectkit-0.13.0 → detectkit-0.13.1}/README.md +0 -0
  9. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/__init__.py +0 -0
  10. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/__init__.py +0 -0
  11. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/base.py +0 -0
  12. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/branding.py +0 -0
  13. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/email.py +0 -0
  14. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/factory.py +0 -0
  15. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/mattermost.py +0 -0
  16. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/slack.py +0 -0
  17. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/telegram.py +0 -0
  18. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/channels/webhook.py +0 -0
  19. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/orchestrator/__init__.py +0 -0
  20. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/orchestrator/_base.py +0 -0
  21. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/orchestrator/_cooldown.py +0 -0
  22. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/orchestrator/_decision.py +0 -0
  23. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/orchestrator/_dispatch.py +0 -0
  24. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/orchestrator/_recovery.py +0 -0
  25. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/orchestrator/_types.py +0 -0
  26. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/alerting/orchestrator/orchestrator.py +0 -0
  27. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/__init__.py +0 -0
  28. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/_output.py +0 -0
  29. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/CLAUDE.section.md +0 -0
  30. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/rules/cli.md +0 -0
  31. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/rules/detectors.md +0 -0
  32. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/rules/overview.md +0 -0
  33. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/rules/project.md +0 -0
  34. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/skills/dtk-new-metric/SKILL.md +0 -0
  35. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/assets/claude/skills/dtk-setup-project/SKILL.md +0 -0
  36. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/commands/__init__.py +0 -0
  37. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/commands/clean.py +0 -0
  38. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/commands/init.py +0 -0
  39. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/commands/init_claude.py +0 -0
  40. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/commands/run.py +0 -0
  41. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/commands/test_alert.py +0 -0
  42. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/commands/unlock.py +0 -0
  43. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/cli/main.py +0 -0
  44. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/config/__init__.py +0 -0
  45. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/config/metric_config.py +0 -0
  46. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/config/profile.py +0 -0
  47. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/config/project_config.py +0 -0
  48. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/config/validator.py +0 -0
  49. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/core/__init__.py +0 -0
  50. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/core/interval.py +0 -0
  51. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/core/models.py +0 -0
  52. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/__init__.py +0 -0
  53. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/_sql_manager.py +0 -0
  54. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/clickhouse_manager.py +0 -0
  55. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/__init__.py +0 -0
  56. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/_alert_states.py +0 -0
  57. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/_base.py +0 -0
  58. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/_datapoints.py +0 -0
  59. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/_detections.py +0 -0
  60. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/_maintenance.py +0 -0
  61. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/_metrics.py +0 -0
  62. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/_schema.py +0 -0
  63. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/_tasks.py +0 -0
  64. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/internal_tables/manager.py +0 -0
  65. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/manager.py +0 -0
  66. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/mysql_manager.py +0 -0
  67. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/postgres_manager.py +0 -0
  68. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/database/tables.py +0 -0
  69. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/__init__.py +0 -0
  70. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/base.py +0 -0
  71. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/factory.py +0 -0
  72. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/seasonality.py +0 -0
  73. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/statistical/__init__.py +0 -0
  74. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/statistical/_windowed.py +0 -0
  75. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/statistical/iqr.py +0 -0
  76. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/statistical/mad.py +0 -0
  77. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/statistical/manual_bounds.py +0 -0
  78. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/detectors/statistical/zscore.py +0 -0
  79. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/loaders/__init__.py +0 -0
  80. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/loaders/metric_loader.py +0 -0
  81. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/loaders/query_template.py +0 -0
  82. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/__init__.py +0 -0
  83. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/error_dispatch.py +0 -0
  84. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/task_manager/__init__.py +0 -0
  85. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/task_manager/_alert_step.py +0 -0
  86. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/task_manager/_base.py +0 -0
  87. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/task_manager/_detect_step.py +0 -0
  88. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/task_manager/_load_step.py +0 -0
  89. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/task_manager/_types.py +0 -0
  90. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/orchestration/task_manager/manager.py +0 -0
  91. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/utils/__init__.py +0 -0
  92. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/utils/datetime_utils.py +0 -0
  93. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/utils/env_interpolation.py +0 -0
  94. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/utils/json_utils.py +0 -0
  95. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit/utils/stats.py +0 -0
  96. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit.egg-info/SOURCES.txt +0 -0
  97. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit.egg-info/dependency_links.txt +0 -0
  98. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit.egg-info/entry_points.txt +0 -0
  99. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit.egg-info/requires.txt +0 -0
  100. {detectkit-0.13.0 → detectkit-0.13.1}/detectkit.egg-info/top_level.txt +0 -0
  101. {detectkit-0.13.0 → detectkit-0.13.1}/pyproject.toml +0 -0
  102. {detectkit-0.13.0 → detectkit-0.13.1}/requirements.txt +0 -0
  103. {detectkit-0.13.0 → detectkit-0.13.1}/setup.cfg +0 -0
  104. {detectkit-0.13.0 → detectkit-0.13.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: detectkit
3
- Version: 0.13.0
3
+ Version: 0.13.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.13.0"
7
+ __version__ = "0.13.1"
8
8
 
9
9
  from detectkit.core.interval import Interval
10
10
  from detectkit.core.models import ColumnDefinition, TableModel
@@ -156,7 +156,9 @@ custom templates — see `{dashboard_url}` / `{dashboard_line}` below.
156
156
  With no custom `template`, each channel renders a structured, branded message
157
157
  (alert-centric: the rule that fired leads, the anomaly value is evidence). The
158
158
  shared value computation lives in one place (`BaseAlertChannel.build_context`),
159
- so templates and native rendering stay consistent.
159
+ so templates and native rendering stay consistent. Every alert title/headline
160
+ leads with a colored **status circle** — 🔴 anomaly, 🟢 recovery, 🟡 no-data,
161
+ 🔵 pipeline error — so the status reads from color alone.
160
162
 
161
163
  - **Slack / Mattermost / generic webhook** — one message *attachment* with a
162
164
  status-colored accent bar, a clickable title (the metric; links to
@@ -168,7 +170,7 @@ so templates and native rendering stay consistent.
168
170
  branding kept, no fields grid).
169
171
  - **Telegram** — default `parse_mode` is now **HTML**. The default message is
170
172
  structured and HTML-escaped: a colored status dot (red anomaly / green
171
- recovery / yellow no-data / stop error), a bold headline, the rule, then
173
+ recovery / yellow no-data / blue error), a bold headline, the rule, then
172
174
  evidence in `<code>` (value/expected/severity/time/detector/params), an inline
173
175
  "Open dashboard" link, then mentions. This fixes the old Markdown mode raising
174
176
  "can't parse entities" on params JSON containing underscores (e.g.
@@ -49,6 +49,7 @@ alerting: # optional — see alerting.md
49
49
  channels: [mattermost_ops]
50
50
  consecutive_anomalies: 3
51
51
  alert_cooldown: "30min"
52
+ dashboard_url: https://grafana.ops/d/api-errors # optional; clickable in every alert
52
53
 
53
54
  tables: # optional — per-metric internal table overrides
54
55
  datapoints: _dtk_datapoints_api
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: detectkit
3
- Version: 0.13.0
3
+ Version: 0.13.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