holmesgpt 0.13.2__py3-none-any.whl → 0.16.2a0__py3-none-any.whl

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 (134) hide show
  1. holmes/__init__.py +1 -1
  2. holmes/clients/robusta_client.py +17 -4
  3. holmes/common/env_vars.py +40 -1
  4. holmes/config.py +114 -144
  5. holmes/core/conversations.py +53 -14
  6. holmes/core/feedback.py +191 -0
  7. holmes/core/investigation.py +18 -22
  8. holmes/core/llm.py +489 -88
  9. holmes/core/models.py +103 -1
  10. holmes/core/openai_formatting.py +13 -0
  11. holmes/core/prompt.py +1 -1
  12. holmes/core/safeguards.py +4 -4
  13. holmes/core/supabase_dal.py +293 -100
  14. holmes/core/tool_calling_llm.py +423 -323
  15. holmes/core/tools.py +311 -33
  16. holmes/core/tools_utils/token_counting.py +14 -0
  17. holmes/core/tools_utils/tool_context_window_limiter.py +57 -0
  18. holmes/core/tools_utils/tool_executor.py +13 -8
  19. holmes/core/toolset_manager.py +155 -4
  20. holmes/core/tracing.py +6 -1
  21. holmes/core/transformers/__init__.py +23 -0
  22. holmes/core/transformers/base.py +62 -0
  23. holmes/core/transformers/llm_summarize.py +174 -0
  24. holmes/core/transformers/registry.py +122 -0
  25. holmes/core/transformers/transformer.py +31 -0
  26. holmes/core/truncation/compaction.py +59 -0
  27. holmes/core/truncation/dal_truncation_utils.py +23 -0
  28. holmes/core/truncation/input_context_window_limiter.py +218 -0
  29. holmes/interactive.py +177 -24
  30. holmes/main.py +7 -4
  31. holmes/plugins/prompts/_fetch_logs.jinja2 +26 -1
  32. holmes/plugins/prompts/_general_instructions.jinja2 +1 -2
  33. holmes/plugins/prompts/_runbook_instructions.jinja2 +23 -12
  34. holmes/plugins/prompts/conversation_history_compaction.jinja2 +88 -0
  35. holmes/plugins/prompts/generic_ask.jinja2 +2 -4
  36. holmes/plugins/prompts/generic_ask_conversation.jinja2 +2 -1
  37. holmes/plugins/prompts/generic_ask_for_issue_conversation.jinja2 +2 -1
  38. holmes/plugins/prompts/generic_investigation.jinja2 +2 -1
  39. holmes/plugins/prompts/investigation_procedure.jinja2 +48 -0
  40. holmes/plugins/prompts/kubernetes_workload_ask.jinja2 +2 -1
  41. holmes/plugins/prompts/kubernetes_workload_chat.jinja2 +2 -1
  42. holmes/plugins/runbooks/__init__.py +117 -18
  43. holmes/plugins/runbooks/catalog.json +2 -0
  44. holmes/plugins/toolsets/__init__.py +21 -8
  45. holmes/plugins/toolsets/aks-node-health.yaml +46 -0
  46. holmes/plugins/toolsets/aks.yaml +64 -0
  47. holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py +26 -36
  48. holmes/plugins/toolsets/azure_sql/azure_sql_toolset.py +0 -1
  49. holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py +10 -7
  50. holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py +9 -6
  51. holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py +8 -6
  52. holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py +8 -6
  53. holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py +9 -6
  54. holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py +9 -7
  55. holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py +9 -6
  56. holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py +9 -6
  57. holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py +9 -6
  58. holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py +9 -6
  59. holmes/plugins/toolsets/bash/bash_toolset.py +10 -13
  60. holmes/plugins/toolsets/bash/common/bash.py +7 -7
  61. holmes/plugins/toolsets/cilium.yaml +284 -0
  62. holmes/plugins/toolsets/coralogix/toolset_coralogix_logs.py +5 -3
  63. holmes/plugins/toolsets/datadog/datadog_api.py +490 -24
  64. holmes/plugins/toolsets/datadog/datadog_logs_instructions.jinja2 +21 -10
  65. holmes/plugins/toolsets/datadog/toolset_datadog_general.py +349 -216
  66. holmes/plugins/toolsets/datadog/toolset_datadog_logs.py +190 -19
  67. holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py +101 -44
  68. holmes/plugins/toolsets/datadog/toolset_datadog_rds.py +13 -16
  69. holmes/plugins/toolsets/datadog/toolset_datadog_traces.py +25 -31
  70. holmes/plugins/toolsets/git.py +51 -46
  71. holmes/plugins/toolsets/grafana/common.py +15 -3
  72. holmes/plugins/toolsets/grafana/grafana_api.py +46 -24
  73. holmes/plugins/toolsets/grafana/grafana_tempo_api.py +454 -0
  74. holmes/plugins/toolsets/grafana/loki/instructions.jinja2 +9 -0
  75. holmes/plugins/toolsets/grafana/loki/toolset_grafana_loki.py +117 -0
  76. holmes/plugins/toolsets/grafana/toolset_grafana.py +211 -91
  77. holmes/plugins/toolsets/grafana/toolset_grafana_dashboard.jinja2 +27 -0
  78. holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2 +246 -11
  79. holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py +653 -293
  80. holmes/plugins/toolsets/grafana/trace_parser.py +1 -1
  81. holmes/plugins/toolsets/internet/internet.py +6 -7
  82. holmes/plugins/toolsets/internet/notion.py +5 -6
  83. holmes/plugins/toolsets/investigator/core_investigation.py +42 -34
  84. holmes/plugins/toolsets/kafka.py +25 -36
  85. holmes/plugins/toolsets/kubernetes.yaml +58 -84
  86. holmes/plugins/toolsets/kubernetes_logs.py +6 -6
  87. holmes/plugins/toolsets/kubernetes_logs.yaml +32 -0
  88. holmes/plugins/toolsets/logging_utils/logging_api.py +80 -4
  89. holmes/plugins/toolsets/mcp/toolset_mcp.py +181 -55
  90. holmes/plugins/toolsets/newrelic/__init__.py +0 -0
  91. holmes/plugins/toolsets/newrelic/new_relic_api.py +125 -0
  92. holmes/plugins/toolsets/newrelic/newrelic.jinja2 +41 -0
  93. holmes/plugins/toolsets/newrelic/newrelic.py +163 -0
  94. holmes/plugins/toolsets/opensearch/opensearch.py +10 -17
  95. holmes/plugins/toolsets/opensearch/opensearch_logs.py +7 -7
  96. holmes/plugins/toolsets/opensearch/opensearch_ppl_query_docs.jinja2 +1616 -0
  97. holmes/plugins/toolsets/opensearch/opensearch_query_assist.py +78 -0
  98. holmes/plugins/toolsets/opensearch/opensearch_query_assist_instructions.jinja2 +223 -0
  99. holmes/plugins/toolsets/opensearch/opensearch_traces.py +13 -16
  100. holmes/plugins/toolsets/openshift.yaml +283 -0
  101. holmes/plugins/toolsets/prometheus/prometheus.py +915 -390
  102. holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2 +43 -2
  103. holmes/plugins/toolsets/prometheus/utils.py +28 -0
  104. holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py +9 -10
  105. holmes/plugins/toolsets/robusta/robusta.py +236 -65
  106. holmes/plugins/toolsets/robusta/robusta_instructions.jinja2 +26 -9
  107. holmes/plugins/toolsets/runbook/runbook_fetcher.py +137 -26
  108. holmes/plugins/toolsets/service_discovery.py +1 -1
  109. holmes/plugins/toolsets/servicenow_tables/instructions.jinja2 +83 -0
  110. holmes/plugins/toolsets/servicenow_tables/servicenow_tables.py +426 -0
  111. holmes/plugins/toolsets/utils.py +88 -0
  112. holmes/utils/config_utils.py +91 -0
  113. holmes/utils/default_toolset_installation_guide.jinja2 +1 -22
  114. holmes/utils/env.py +7 -0
  115. holmes/utils/global_instructions.py +75 -10
  116. holmes/utils/holmes_status.py +2 -1
  117. holmes/utils/holmes_sync_toolsets.py +0 -2
  118. holmes/utils/krr_utils.py +188 -0
  119. holmes/utils/sentry_helper.py +41 -0
  120. holmes/utils/stream.py +61 -7
  121. holmes/version.py +34 -14
  122. holmesgpt-0.16.2a0.dist-info/LICENSE +178 -0
  123. {holmesgpt-0.13.2.dist-info → holmesgpt-0.16.2a0.dist-info}/METADATA +29 -27
  124. {holmesgpt-0.13.2.dist-info → holmesgpt-0.16.2a0.dist-info}/RECORD +126 -102
  125. holmes/core/performance_timing.py +0 -72
  126. holmes/plugins/toolsets/grafana/tempo_api.py +0 -124
  127. holmes/plugins/toolsets/grafana/toolset_grafana_loki.py +0 -110
  128. holmes/plugins/toolsets/newrelic.py +0 -231
  129. holmes/plugins/toolsets/servicenow/install.md +0 -37
  130. holmes/plugins/toolsets/servicenow/instructions.jinja2 +0 -3
  131. holmes/plugins/toolsets/servicenow/servicenow.py +0 -219
  132. holmesgpt-0.13.2.dist-info/LICENSE.txt +0 -21
  133. {holmesgpt-0.13.2.dist-info → holmesgpt-0.16.2a0.dist-info}/WHEEL +0 -0
  134. {holmesgpt-0.13.2.dist-info → holmesgpt-0.16.2a0.dist-info}/entry_points.txt +0 -0
@@ -1,34 +1,44 @@
1
1
  holmes/.git_archival.json,sha256=PbwdO7rNhEJ4ALiO12DPPb81xNAIsVxCA0m8OrVoqsk,182
2
- holmes/__init__.py,sha256=8fdnxGDIKuTqzLPNlVFwjRF4vLnpROhhhVyP62okSJk,257
3
- holmes/clients/robusta_client.py,sha256=lHV02aKJmAb08jVhjQ6jWvhhmjQ86Ajbo_lgbhqfn3s,1221
4
- holmes/common/env_vars.py,sha256=-P834z71-S7cklgTB7DX0OuTLzxwmAT3WETt3svBUY0,3013
2
+ holmes/__init__.py,sha256=jlhEEIdfV2NHyLi5Y7FMLyklw6BDh9YsvOTtIKgYQBQ,263
3
+ holmes/clients/robusta_client.py,sha256=YZA70OXGO0WZGTqtBhKiOtP7bhsrSW_f2Ea3Qcg9aMY,1530
4
+ holmes/common/env_vars.py,sha256=15oIGn-__lpJMY_rNc8c-fIUwq7p5wQvTs5Auq4l6vI,4403
5
5
  holmes/common/openshift.py,sha256=akbQ0GpnmuzXOqTcotpTDQSDKIROypS9mgPOprUgkCw,407
6
- holmes/config.py,sha256=TGuj7A9821rPuRj6KnAfCRgNifmQMrEkwIJc9TCKAXc,23899
6
+ holmes/config.py,sha256=Q6RUaHawkrGohPOZIGmy4SnqFYgP993mXZU3qbKn5II,23328
7
7
  holmes/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  holmes/core/config.py,sha256=9QGIXeYff9FPWa91as2OkRO2SupHzfNQZWzfNC4Vl-8,113
9
- holmes/core/conversations.py,sha256=krkcIe5Sl4JIGp5CfQrR74JYLnxis8ifKu09mOA5fAI,21428
10
- holmes/core/investigation.py,sha256=BUQ0JWMyXgSFR1NUPf8XLr8dqBOIyXfq-JhMspIYPPM,5941
9
+ holmes/core/conversations.py,sha256=cmaSnKIfvzyZq62O9QWasX6PrxSU5mSPpuCJnD1cyms,23015
10
+ holmes/core/feedback.py,sha256=Gu69ghRYGSCPDgFA77xOB5RPbVdQX-9Qpv4yVVegL4g,6793
11
+ holmes/core/investigation.py,sha256=UxqnJ3XoqyayH5yBD6ITJ7qXByx31CwVeBRKoM_s47M,5784
11
12
  holmes/core/investigation_structured_output.py,sha256=sNxyqmsElQ-B22OlzTOrJtfrlipjyidcTU07idOBO7w,10570
12
13
  holmes/core/issue.py,sha256=dbctGv8KHAXC1SeOMkEP-BudJ50u7kA8jLN5FN_d808,2426
13
- holmes/core/llm.py,sha256=DKNqYjcfzMRPSFdoGJh7rjV5qnPL-zn4SBXwL3B891E,13530
14
- holmes/core/models.py,sha256=1ILqNpTxMAl9sldFyp6P4gWEdtRaKJP59uZvNMqvmbs,5990
15
- holmes/core/openai_formatting.py,sha256=wL0Fq6lDePIKR5viitQz9ZWCQZZkHZHmEUqPIsOoFns,4077
16
- holmes/core/performance_timing.py,sha256=MTbTiiX2jjPmW7PuNA2eYON40eWsHPryR1ap_KlwZ_E,2217
17
- holmes/core/prompt.py,sha256=YkztY4gsobXys0fHxcwgngZBR2xDtBSYryY7HRnTxCQ,3025
14
+ holmes/core/llm.py,sha256=3qFMjMflFba1NDk64oaU2lPi7Yr8oktYPdNKxzEQ8cM,28423
15
+ holmes/core/models.py,sha256=xFHFutZWoIaQWSeuq1PiYPw9SGkDrQsQ9qYXuk60EEU,9096
16
+ holmes/core/openai_formatting.py,sha256=31MwVvu0v0JiXot4Y0AwDJlFYe9vx8IB6mZiyC1y_lo,4684
17
+ holmes/core/prompt.py,sha256=-cGxS8mxe-wRCvF0EC_thfuujmrr5J9s8DDRn9HB95Q,3046
18
18
  holmes/core/resource_instruction.py,sha256=rduue_t8iQi1jbWc3-k3jX867W1Fvc6Tah5uOJk35Mc,483
19
19
  holmes/core/runbooks.py,sha256=Oj5ICmiGgaq57t4erPzQDvHQ0rMGj1nhiiYhl8peH3Q,939
20
- holmes/core/safeguards.py,sha256=SAw-J9y3uAehJVZJYsFs4C62jzLV4p_C07F2jUuJHug,4895
21
- holmes/core/supabase_dal.py,sha256=-AtQ6oDyIpoc2a46xA26e8416kUD4tj2Q3p4P42PFP4,21291
20
+ holmes/core/safeguards.py,sha256=XrKgmMoJxSROfoSOW6t6QEG2MFppzC20Nyn1HA5G4Go,4935
21
+ holmes/core/supabase_dal.py,sha256=uHTkWg5NxrYHQP1a2VbcY6tbR_KhkpC_FheBKL_mIOw,28540
22
22
  holmes/core/todo_tasks_formatter.py,sha256=USyJZcoX6zoxID1UV-abAKdaWFYLO6QJd-UKryJAurI,1487
23
- holmes/core/tool_calling_llm.py,sha256=hdGmkm8fMaa7zRy4x2F8xMTYo1b1vpaHtQnfxXtG8VQ,41175
24
- holmes/core/tools.py,sha256=Xj7Yoztf9OqrGMSwhWBNmIwoZ147P6qi7U6vt0PNgBQ,21380
23
+ holmes/core/tool_calling_llm.py,sha256=Q0vS3fPk3mHf3BJz6jVR7tEP0xhjzqspVAzAC4tB7DA,45338
24
+ holmes/core/tools.py,sha256=FYUm4wh3oFesabX2jaHvOGG8420bo61T26SUwH35Tjg,33288
25
25
  holmes/core/tools_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- holmes/core/tools_utils/tool_executor.py,sha256=wLuyr1O8zkNXaZ_MzWm5hUDcOI3tB9I4YiserDhIu-E,2375
26
+ holmes/core/tools_utils/token_counting.py,sha256=7ZXbPqEIb8ClVvG_t9z2wlujDtX7m_pTVi242-2ZmQE,427
27
+ holmes/core/tools_utils/tool_context_window_limiter.py,sha256=tGDVb0LhpACWTrM1tmOEFfTqEhdbdAx7pJ-Eoedr7y8,2432
28
+ holmes/core/tools_utils/tool_executor.py,sha256=pUkddbm_kgYdfhR1w5IbnSmwG56kvA4VadzBV8OqG8g,2632
27
29
  holmes/core/tools_utils/toolset_utils.py,sha256=SvWzen8Fg_TB_6Idw1hK0nCPrJL40ueWVMfsv8Kh2RY,2363
28
- holmes/core/toolset_manager.py,sha256=PVmhRaSZntcJ_-jE3W2vHwZgAXIprPIgq0YMGYhmcZs,18451
29
- holmes/core/tracing.py,sha256=j7tC4xuPHTU3s1m8Y7kClNfGOSBTHBINFkr1NmYe51Y,8986
30
- holmes/interactive.py,sha256=l1kh0ABXO_RWIzkEuLkedM-73k1ezENAvXMrgNeqsKA,41836
31
- holmes/main.py,sha256=e_J4B1oMPbBiKz8cf-m_UJbhdk98AgAPS1LsU67PEe8,34813
30
+ holmes/core/toolset_manager.py,sha256=UqAUfjY09SAGirOHzyQwpOu2wxQUzU0F1STw8w-1abw,25878
31
+ holmes/core/tracing.py,sha256=o1vTLCbnFvBOVnQKqRaj4HDNYGYAd4ub2IgkV1E3qY4,9130
32
+ holmes/core/transformers/__init__.py,sha256=kCwmx-IQ6BpGpMpnm563ecl5Ik1nx4lhKb2y3KAKF7I,600
33
+ holmes/core/transformers/base.py,sha256=FHUocHIS_oUBLWMiibdAuKY0Lpz5xY2ICji6DbmP2Do,1500
34
+ holmes/core/transformers/llm_summarize.py,sha256=ZEJn3DElzMZLCCHNIzlCozllM2CmQ-JyXiqaGO7dAw4,6407
35
+ holmes/core/transformers/registry.py,sha256=x8kKRXJvc_tJO2RvNGyoVXt6rFgG4S_ZcTG8p_OXYH0,3771
36
+ holmes/core/transformers/transformer.py,sha256=rfT84Oq6qJyryevZGFKEbo1VSxinK4FBWUw_HpJ72xE,1028
37
+ holmes/core/truncation/compaction.py,sha256=tIm8hM6bLA_NKG0--LAewmdNjUnw9NTOJlcLgfntYLI,2118
38
+ holmes/core/truncation/dal_truncation_utils.py,sha256=I69I7Jac1kTtpxDRMe8O3IPN8Au0bZJqI8gXwW-GMaI,776
39
+ holmes/core/truncation/input_context_window_limiter.py,sha256=spTOqBGKu1yputPxMt5xv46bemkMmvOWGW9bnIQB-NQ,8897
40
+ holmes/interactive.py,sha256=xijvR6lRlgcQ0n5_aT81qEYOEOgfAe_7SkqkVdZKvUU,47510
41
+ holmes/main.py,sha256=GNY-mwX3Tk_4-uf2bkrTiEhQm4rFdEc8Uw0r_GMe26I,34999
32
42
  holmes/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
43
  holmes/plugins/destinations/__init__.py,sha256=vMYwTfA5nQ05us5Rzbaoe0R5C8Navo6ENVZhojtACTk,98
34
44
  holmes/plugins/destinations/slack/__init__.py,sha256=HVoDdTbdJJ1amXt12ZSMVcn3E04rcOrqk6BgNwvMbWY,56
@@ -38,26 +48,27 @@ holmes/plugins/prompts/__init__.py,sha256=sOUHbHFQ6tYX7XWLi-Ak87cOQB1E889X5X8kWJ
38
48
  holmes/plugins/prompts/_ai_safety.jinja2,sha256=IoVdOXHnkGwLaiuUzMczEdoahyrKhkdYvyDmz9Oewxw,2262
39
49
  holmes/plugins/prompts/_current_date_time.jinja2,sha256=KynAvkQFqf_SXjqVY77nB8z4RgN7gti4SBSq1H7moHs,354
40
50
  holmes/plugins/prompts/_default_log_prompt.jinja2,sha256=Tqw8CD2ZMStXIfMdYaoZT_d-FvQ_PMg6-knqag-YEgc,1478
41
- holmes/plugins/prompts/_fetch_logs.jinja2,sha256=-rM-bYRGOlQa0KlheCXR4b0UcED1F7nHnHgnsqbx_PM,3988
42
- holmes/plugins/prompts/_general_instructions.jinja2,sha256=0RB5TFGqhbQ-xNt2_oHXJjvMIBLThuRDusBbbEruy2w,5777
51
+ holmes/plugins/prompts/_fetch_logs.jinja2,sha256=6ogGb49jUT7rWGxwgeHVTGTqird3PJLwYkyi9__5jnU,5956
52
+ holmes/plugins/prompts/_general_instructions.jinja2,sha256=IvGkmKaIrG7wXJlVcNqtYrst1Z-vRZYRMENzf_nDoz4,5774
43
53
  holmes/plugins/prompts/_global_instructions.jinja2,sha256=d_c-BtDhU_Rmx637TPAyzlIIim8ZAxy7JK3V4GV8IWI,1359
44
54
  holmes/plugins/prompts/_permission_errors.jinja2,sha256=gIMQx-zaTnuEv7SkQVC_GvxsR5R85fLuDZnJIKWcm5A,480
45
- holmes/plugins/prompts/_runbook_instructions.jinja2,sha256=ngm3rmPPvgPG-9fjtR3yVb84YQNdNWfWShDGIag1JnY,1121
55
+ holmes/plugins/prompts/_runbook_instructions.jinja2,sha256=PCosKWqjvE5UwolJvAA4n_fytFKJMCDk_QVskr5myxU,1507
46
56
  holmes/plugins/prompts/_toolsets_instructions.jinja2,sha256=MaK5HRxhJyZ3I9zsmgdLO4lU95l24CwGp70ON5xHLMc,3024
47
- holmes/plugins/prompts/generic_ask.jinja2,sha256=wHAPX8SQaF_xpaYiLkwDuhQYYaKRsBPxFkciY6A3_QY,1997
48
- holmes/plugins/prompts/generic_ask_conversation.jinja2,sha256=qsWIHkrLTHMJSSx62kzGaZBLWmSgOmyhpMQRYoZqj_I,1610
49
- holmes/plugins/prompts/generic_ask_for_issue_conversation.jinja2,sha256=ooAPhHr7yEDQWziOTnjEUtDUZrGcApLNz2h5RS-0XnA,2074
50
- holmes/plugins/prompts/generic_investigation.jinja2,sha256=Uy544GeWzANqGL3M0ix48EI_NaWp0XCcmonHlSqJFmI,3420
57
+ holmes/plugins/prompts/conversation_history_compaction.jinja2,sha256=F-m7soEKD01uifWKWEczvraLBvjDAkPo3PrOJcaqyRw,4884
58
+ holmes/plugins/prompts/generic_ask.jinja2,sha256=kdf5uHK9s2DmUPIE77lM3TiCNAI4MIHkVoJotl7wjHw,1951
59
+ holmes/plugins/prompts/generic_ask_conversation.jinja2,sha256=aZ0AxXgbxnHsJj12R29eO9DzvBjJphBouL486p1F5yk,1611
60
+ holmes/plugins/prompts/generic_ask_for_issue_conversation.jinja2,sha256=lgTeeQVNgKmguA_HnvOV8OwrQUETpbPn_ZxFXIK7KIM,2075
61
+ holmes/plugins/prompts/generic_investigation.jinja2,sha256=u0PR1oU6w_c85oPVX9N5tjkc21_-uaQSGtVPW60iHrs,3419
51
62
  holmes/plugins/prompts/generic_post_processing.jinja2,sha256=1YNBGKgpZkLNO6Xkbi4yqwWE2DZKACq4xl0ygywgY_w,596
52
63
  holmes/plugins/prompts/generic_ticket.jinja2,sha256=FVWvPVnX0JSeBbKu1RuBUcQ7hcsqz661n_QC_kWUPV0,437
53
64
  holmes/plugins/prompts/investigation_output_format.jinja2,sha256=C03_d4cQUhEvI5YBoVSkSZypM21wriGrocN4iP1_8co,1071
54
- holmes/plugins/prompts/investigation_procedure.jinja2,sha256=iyMJv3hb3fNjvmFItN1rKY7pfQUQIE_Mm7pd2RX1gYo,10185
55
- holmes/plugins/prompts/kubernetes_workload_ask.jinja2,sha256=C6iclMZ9n64nUvvc28WxzXixMT8s-7z1owMxSDvyVrk,5930
56
- holmes/plugins/prompts/kubernetes_workload_chat.jinja2,sha256=rjB6mAHk2SDg2cwZp5vp66ihCer17BE6o8Ezr2zGQE4,1770
65
+ holmes/plugins/prompts/investigation_procedure.jinja2,sha256=oG_j1NfN-9ahhnHXoDbCHJ7iYu3gPh5hWfPV9KFBp94,12616
66
+ holmes/plugins/prompts/kubernetes_workload_ask.jinja2,sha256=6PgNe1CJRLCmxw5cK886rZf8FHJjnAw5wnuMmUajQUQ,5931
67
+ holmes/plugins/prompts/kubernetes_workload_chat.jinja2,sha256=2gWaVWaN8F1Qh7_K3eykaDaOvMlEarK7ItaeFunCWgM,1771
57
68
  holmes/plugins/runbooks/CLAUDE.md,sha256=WYjf-ZvKmfrShmhTHplLscIpIB1j2TrrG6C_LR63XR0,5511
58
69
  holmes/plugins/runbooks/README.md,sha256=dPrAO4bZGGW1C3FFaUm_adPMrb72DSSmbUkRSwqNK4U,2585
59
- holmes/plugins/runbooks/__init__.py,sha256=2_39h7qZYhh0a7I2-OrvswF0Y8F7nWqI5zD_dgt_wsk,3333
60
- holmes/plugins/runbooks/catalog.json,sha256=GvrpVpk0AIm9HZ3dlh6FI_CVzHoCGJPvZggOMaL_WKs,436
70
+ holmes/plugins/runbooks/__init__.py,sha256=V02gmHm7uc83kwuNF2ujZhgRr1JeV9F8qysZPMLRLx0,6608
71
+ holmes/plugins/runbooks/catalog.json,sha256=oB47G6kvzqunXPXg7MlQSb5LLmRsT8F6D9O9ELirLEg,516
61
72
  holmes/plugins/runbooks/jira.yaml,sha256=o24IL7Cb-Mv5X-cAj8Ik4KmEmY7bf98zBkMP5r39ong,777
62
73
  holmes/plugins/runbooks/kube-prometheus-stack.yaml,sha256=adzr0vxvQZHJ_HYzYl5NdmjrTpVByx9h-3abpaFUo-Y,743
63
74
  holmes/plugins/runbooks/networking/dns_troubleshooting_instructions.md,sha256=WuyS49-guD5pjW-L16RZ-X3Kc60sF4JGIla9y2tPgBc,5480
@@ -69,12 +80,12 @@ holmes/plugins/sources/pagerduty/__init__.py,sha256=LYoN1dkUg7NCx7g-gdSomTTJhHyB
69
80
  holmes/plugins/sources/prometheus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
81
  holmes/plugins/sources/prometheus/models.py,sha256=9TcDIRLWZQhwjYGfRZFP_2fGweCn4G5xvYrLoXiQZTc,2904
71
82
  holmes/plugins/sources/prometheus/plugin.py,sha256=oBmuOwNM67suy6HmasUnyVOlBq9-mAxLZLlUzRHIggg,5941
72
- holmes/plugins/toolsets/__init__.py,sha256=gBsTeiDyOas213SMERuX2TvLUMvhwivwRXNEC3Eqj_Q,7473
73
- holmes/plugins/toolsets/aks-node-health.yaml,sha256=RHtJUd6h1EEXEq4AMGrxrGSW7r2Ahx-qq-v9a6jp408,3159
74
- holmes/plugins/toolsets/aks.yaml,sha256=oa8XogT1c-lqEL08muvpCzrXArbGL7MXUS2yUqX0sec,5744
83
+ holmes/plugins/toolsets/__init__.py,sha256=b2mM9CES9fw00tq30cwA0z5AdSt3Sa5QYVPKHRKWAAY,7785
84
+ holmes/plugins/toolsets/aks-node-health.yaml,sha256=37Dvk4D0ez1GQlt91MQkI0pZ5RLtUEFAOxDXDCVzb-g,5995
85
+ holmes/plugins/toolsets/aks.yaml,sha256=_XwrMSsghFnCqlbsZvVfwF3qgQFnxi47AC5Oavi2YC0,9532
75
86
  holmes/plugins/toolsets/argocd.yaml,sha256=lbRIooJIkpumNdRgoDRHTjNb9PvFTfjQcT0iWU2x8mg,3932
76
87
  holmes/plugins/toolsets/atlas_mongodb/instructions.jinja2,sha256=iyft4EwvYcImI_YrMte8_BTJZXGV6i0k84g3oKXR23k,988
77
- holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py,sha256=43L4zX22RQSkwCzhTEQh-y3fw51nMztqUZDVH_uGqzE,15522
88
+ holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py,sha256=8AdGtsox8huiR5UhKnQRN0cz8uPwNr1AGrtsUzvg7bY,15647
78
89
  holmes/plugins/toolsets/aws.yaml,sha256=AM5MizvfHeGFoCRr6kf3Wcd6y_EAhSDqtZajTFrLVfE,4475
79
90
  holmes/plugins/toolsets/azure_sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
91
  holmes/plugins/toolsets/azure_sql/apis/alert_monitoring_api.py,sha256=DSrKzzE6lofynViYr0SGaQrWjePpzbfdt3DcplbFGek,26397
@@ -84,19 +95,19 @@ holmes/plugins/toolsets/azure_sql/apis/connection_monitoring_api.py,sha256=10k5K
84
95
  holmes/plugins/toolsets/azure_sql/apis/storage_analysis_api.py,sha256=sbz8b2IeGqwosA34ddbqnXbD_iPYKuAMyZrV0-__O9g,13835
85
96
  holmes/plugins/toolsets/azure_sql/azure_base_toolset.py,sha256=8eQPsFBPTCf_GMpbjfzzN3u-rGUXiElTD06RWCe7uso,2163
86
97
  holmes/plugins/toolsets/azure_sql/azure_sql_instructions.jinja2,sha256=GvuxActaoJXA__4k72en7I44jEv_ye0MevSmlHfnzxA,6557
87
- holmes/plugins/toolsets/azure_sql/azure_sql_toolset.py,sha256=l87m6mieP8-uTpj_NDRXbom43YP4b6TzOhnGyvn4r8c,8069
98
+ holmes/plugins/toolsets/azure_sql/azure_sql_toolset.py,sha256=QqMiV7ZY-Dh3jgRyKeON5ha5H-wbvmAVHYA9GF-2UVI,8038
88
99
  holmes/plugins/toolsets/azure_sql/install.md,sha256=eBhdG-OG9HhbrEGvI31aAHRPWwBQne6H95mvBROqZ_s,1585
89
100
  holmes/plugins/toolsets/azure_sql/tools/__init__.py,sha256=lEYFZ5X0mHdqwmi6XXTlM1qA7sBYsuQwVCXmluo-L34,25
90
- holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py,sha256=u7P_r86bq7BGUyPT_aw5CipZ5Za4WfDV9HP5EKGAMhM,13320
91
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py,sha256=Rx4kap1H8BNOW5uYdWw-zTGt1CiFmRozf_FWjCilkeE,10426
92
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py,sha256=BEZ80oa4ZechEEIKWg7fNMTQe0kVGCK-2fXMBO7X5Xs,8283
93
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py,sha256=IT83YpUMy9qgKisar65Y_p6w4Np5AZ1H0rDKAZuIGLg,10654
94
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py,sha256=hVybjmQNg4xwJSWyWsxsHdP4fkzbUvfyvXiU_571cRo,15967
95
- holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py,sha256=C-FvoPA_uEgcJ8TQFqT9xUKSkw5ozAsoRrc0EyniX3I,9366
96
- holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py,sha256=ZdVlkPb6cPRF0bNPFij6Pi0-bA5wRt3thD_RcNbvk1g,7245
97
- holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py,sha256=lkZofwEDoU5f7MJew9wqpLWCXnt9CM3OjIor7qSeYq0,7196
98
- holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py,sha256=2Dkemoa6aKyG2S0PA3SDrGzpqBT0zLZcbsqWz8VtJOs,8222
99
- holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py,sha256=LoBI-433YVwmM_puY4IrjB3cALev87pbI7TLbCl7wTs,7597
101
+ holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py,sha256=f_3TPbAjMDNAjqUr6BkoNzbMn4wvG_gQS-6HH3bC4AY,13385
102
+ holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py,sha256=84STGBRVQbs_6wrufRsTk0m-aGGKt50O4vO6ShwhBTc,10481
103
+ holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py,sha256=1UIdpo4kouoIsIhhGcZ1z_nMrz8GTm9BdZwQQw-FTGI,8334
104
+ holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py,sha256=2E-wloRjNr-PpiVGb-b7DWmqp1wbdz2hQzcsDGXi8QM,10705
105
+ holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py,sha256=kGUwWFngJRjI5wlF2lonNZaJir6yZNAptmkwgHh65Tw,16022
106
+ holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py,sha256=ycmjlBzY0ZvnbWxTLxvYGGhoUb8EKDI4QFGpAHAxk6M,9427
107
+ holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py,sha256=-J4PKLtjTSfiOEAu28_2TeL233Qbe-1xwD9XBwzumu8,7300
108
+ holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py,sha256=28x4xCrvyVj0o4Gr9QKo1qPJzUbkBdozcO_DJhiAFEo,7251
109
+ holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py,sha256=EXWDVat_lZbcGQTcybQrgcLHUXMJYRNwZ1UIJxZZcTg,8277
110
+ holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py,sha256=LIn1Xjr5PusJeEg24oH80X9kf0V36FIZz7JY7D3RPEs,7652
100
111
  holmes/plugins/toolsets/azure_sql/utils.py,sha256=nN8ZcVpkOa05nocY4W1gf7aaaNhzn2oD-P0STYQK2Ck,2331
101
112
  holmes/plugins/toolsets/bash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
113
  holmes/plugins/toolsets/bash/argocd/__init__.py,sha256=1ck-b82embOjsiiZkvuDChXiFaNYFwl5xW-ysBRB4vA,2186
@@ -106,8 +117,8 @@ holmes/plugins/toolsets/bash/aws/constants.py,sha256=g8IH1CLkAZuV8SQEQrUVjLul7S2
106
117
  holmes/plugins/toolsets/bash/azure/__init__.py,sha256=FsLA_v_otjuo_COEw8Hmiuh5_aQ3RWRIstECeBAS5hg,1863
107
118
  holmes/plugins/toolsets/bash/azure/constants.py,sha256=jz2R8-EiSjGjAPBTtIAbLwfyHOJPVmI117wp-u_e8Kc,10361
108
119
  holmes/plugins/toolsets/bash/bash_instructions.jinja2,sha256=AKVW1DpD6lii8cF582LZzEe9sOh3YJCerXBapwlEKhU,481
109
- holmes/plugins/toolsets/bash/bash_toolset.py,sha256=RSjgTIOlh23nrswKhZhg7-me7yWFJtocdBQZ_jCoFHo,9498
110
- holmes/plugins/toolsets/bash/common/bash.py,sha256=qFMLLgdi_RuNY_TRLIyM33JJuoXm--7zj4Xq25baAMY,1783
120
+ holmes/plugins/toolsets/bash/bash_toolset.py,sha256=CN05nUsyUtEQbHzs-OnqYXz16-Z0EjYwIIGCpLVANoc,9559
121
+ holmes/plugins/toolsets/bash/common/bash.py,sha256=EbudJi4ialC5q0Lrdg2d7VkP9faW3pOsuHUszCXp5Fo,1853
111
122
  holmes/plugins/toolsets/bash/common/bash_command.py,sha256=aGlzQnUQHpEK3BNwztESassqzKQ5PFObwvHcFn5GQIY,4570
112
123
  holmes/plugins/toolsets/bash/common/config.py,sha256=dRd_gl16e2jG_gk6_mRVT6o3idiVXJ-8CtBONAx1DOU,285
113
124
  holmes/plugins/toolsets/bash/common/stringify.py,sha256=8dd4KqaNbMmdEaMgAnfEpbNhShVIWkce0S13ckbxNP4,1470
@@ -137,98 +148,111 @@ holmes/plugins/toolsets/bash/utilities/tail.py,sha256=GGHQoMAos0j5kN0EGSq_oQ63j9
137
148
  holmes/plugins/toolsets/bash/utilities/tr.py,sha256=4X3_816-ur6dDMyuJdS2ZwqdKz9aqqOHzqx-yi2m1cs,2157
138
149
  holmes/plugins/toolsets/bash/utilities/uniq.py,sha256=bod-81lXO7-EQiy73A9aaDnc-RkrclwdBJ4rS_rUyn8,320
139
150
  holmes/plugins/toolsets/bash/utilities/wc.py,sha256=EhhRcKjb9QNI51uUjftyzzHQucCawkTU3AB2cviTV90,287
151
+ holmes/plugins/toolsets/cilium.yaml,sha256=iwd1cTEPJ0672cJsnfndirttnWAC1RaH4c8E9sWntqI,12754
140
152
  holmes/plugins/toolsets/confluence.yaml,sha256=WPflxrGKFA5VTcy5p4t2FY86oFECzoyTHkudUxhAL-k,768
141
153
  holmes/plugins/toolsets/consts.py,sha256=vxzGJBF1XNAE9CDteUFIYNRmOagmJ-ktFEfVEU8tHl0,205
142
154
  holmes/plugins/toolsets/coralogix/api.py,sha256=25ZnTfAvh5ZHzDsjap8As87opjGbMSBMQSSqelw7Tm0,5178
143
- holmes/plugins/toolsets/coralogix/toolset_coralogix_logs.py,sha256=lhAw0blKJTqEWe28e6zi_YuA6AqW0xa9AYa8ZInMbFc,3857
155
+ holmes/plugins/toolsets/coralogix/toolset_coralogix_logs.py,sha256=AbkYhWatgfJjdScNkaziRqg8KckcjfSHHQugO4bmE54,3929
144
156
  holmes/plugins/toolsets/coralogix/utils.py,sha256=z9AAgyDTaxVgeSwaYDXGthBBCn_865gq7j1XUbZ5M-o,6938
145
- holmes/plugins/toolsets/datadog/datadog_api.py,sha256=5r9ViF5ABbnBWW-IfyPMntv3cA68hFEQ8t2MamBx-Lk,6841
157
+ holmes/plugins/toolsets/datadog/datadog_api.py,sha256=w8fILwJhMw5jua8O7d8WF5kbQSgRjXonPpZIf-EikJU,22675
146
158
  holmes/plugins/toolsets/datadog/datadog_general_instructions.jinja2,sha256=Z0X7z_AlKtmw3kfDnz-aPJKOnSIX4bPPRz8gQZRCctk,8300
147
- holmes/plugins/toolsets/datadog/datadog_logs_instructions.jinja2,sha256=1hV6dTSK-XB8tYx2Ek9hgaCQLGKPbSFYJmo7owy9vBk,2024
159
+ holmes/plugins/toolsets/datadog/datadog_logs_instructions.jinja2,sha256=NuzQFdUE9fc7MJfchgf6j7jHMANwUFkgRdg1qff5fBE,2943
148
160
  holmes/plugins/toolsets/datadog/datadog_metrics_instructions.jinja2,sha256=_59DzoVsoQVh73SRYhMBsK7jgKYVpWnadfI1AD_eLVY,4231
149
161
  holmes/plugins/toolsets/datadog/datadog_rds_instructions.jinja2,sha256=lbI6lkcMjG1CVKeL0XDkq5zl-fRDVxZ_t_CjS-Uh_OM,3119
150
162
  holmes/plugins/toolsets/datadog/datadog_traces_formatter.py,sha256=uTtWTrsbvO9cZcUDskJE9p5sEscieXwhEpxvRKkaiEw,10275
151
163
  holmes/plugins/toolsets/datadog/instructions_datadog_traces.jinja2,sha256=9j3-46UNE35DE2xBDTCRt1EedgNdgRXuC1u-X3yB-9I,1487
152
- holmes/plugins/toolsets/datadog/toolset_datadog_general.py,sha256=vT6E6tBBQM70o793c3OXRgzdode91dlFMnh2_XNn8Ug,27274
153
- holmes/plugins/toolsets/datadog/toolset_datadog_logs.py,sha256=2WbfvJRSj1sIvTshq1zdWvcpF5LmmnuBV-jE0xs0si8,9954
154
- holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py,sha256=cngHD2vEmqLJV0afg-JSlfPz43DtAY3yCTnlM-kQWss,24810
155
- holmes/plugins/toolsets/datadog/toolset_datadog_rds.py,sha256=5nxqZ93Fx8AmGr7KvF76erk-YsFDIL35KhEJrWsklcQ,29015
156
- holmes/plugins/toolsets/datadog/toolset_datadog_traces.py,sha256=yFkEzignhXVvC3KP-PmamhyssyEhKSWa2o8M0lYJiKU,26059
164
+ holmes/plugins/toolsets/datadog/toolset_datadog_general.py,sha256=BYIv4EyhXVvE4pc4RnTlBJfhR-cAQrmG7d_0FY2egLg,34619
165
+ holmes/plugins/toolsets/datadog/toolset_datadog_logs.py,sha256=iF__DdTEQ6bcC3sQtyxp3eXzx955H2d4c0geL7gavxI,17417
166
+ holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py,sha256=rkHeA_gHSTbL1UOy62q9j7lBm9KXP2exEScq4oRBzsY,28089
167
+ holmes/plugins/toolsets/datadog/toolset_datadog_rds.py,sha256=d6IRJXLLutvGvXmRncpaFWEAYlXdyFdZI0ItCc_t5GM,29132
168
+ holmes/plugins/toolsets/datadog/toolset_datadog_traces.py,sha256=VU8s1HFvw3h-NMkjKKasg939RUeowOhvEqEl7bn6MoA,26267
157
169
  holmes/plugins/toolsets/docker.yaml,sha256=O0Q0z0kZS8_QBEhwrUfbXdGUn1nP1K9k0FlQd6EZVJ4,1559
158
- holmes/plugins/toolsets/git.py,sha256=7D_LEtzHgrcQmIWOG6-hhSCESdZLNb4IWfDhrvxeGP8,32001
170
+ holmes/plugins/toolsets/git.py,sha256=1xJ06rcScjOjpJdSBFaabqdITD3qtpSoVP2-C9eEhQQ,32369
159
171
  holmes/plugins/toolsets/grafana/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
172
  holmes/plugins/toolsets/grafana/base_grafana_toolset.py,sha256=AjvbS4txSo97YqeeFlXUnu95oPFt8rB-CD1Ccf92a04,1760
161
- holmes/plugins/toolsets/grafana/common.py,sha256=BoPZwZ3_MSWGYhJ7lBOuWb292r4qfCiMBOXuXEKY8xA,2103
162
- holmes/plugins/toolsets/grafana/grafana_api.py,sha256=nq7KWoUAfFxp1-3VqKadPNKbTifLTgKUAZOFUH5QWUY,1665
173
+ holmes/plugins/toolsets/grafana/common.py,sha256=oMkTv711UlKrwjZI9xjEeClVaN-nZA-vRepXBTkFVL8,2460
174
+ holmes/plugins/toolsets/grafana/grafana_api.py,sha256=lqxgrzp4cQH0WkkRMa8J9oJb1-AtkmuXynqQGTnvrT4,2518
175
+ holmes/plugins/toolsets/grafana/grafana_tempo_api.py,sha256=C8XEZzIKzeh9pG-DBQoMW4Qi2Kh3ZoI4TXVGUx2CxUc,14688
176
+ holmes/plugins/toolsets/grafana/loki/instructions.jinja2,sha256=Qy3bTJ8wMUnyf603396pobkPoeqxj67se_R4YUAOT6E,803
177
+ holmes/plugins/toolsets/grafana/loki/toolset_grafana_loki.py,sha256=kO4MbTqgi7qerlsHJ6xJtNasDRcq5scEE0SoD1yh5nU,4173
163
178
  holmes/plugins/toolsets/grafana/loki_api.py,sha256=f7oTzfhJ1LojsPoAfsKt32ADWffLEywBJQWG9eyfb7I,2529
164
- holmes/plugins/toolsets/grafana/tempo_api.py,sha256=UbLfyzA5TbP-5jx4Dkc20xLlR-6Z4z-4nPKrMlzgCRU,3565
165
- holmes/plugins/toolsets/grafana/toolset_grafana.py,sha256=GsCxsaWNXzOoA6eoaH9LN6ezUcxdFSgg1iWpqqvcVX0,4882
166
- holmes/plugins/toolsets/grafana/toolset_grafana_loki.py,sha256=Xc80raV16wlt05hdPslkb8ru40h2GYFc2Y80bR1bvlM,3846
167
- holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2,sha256=AKRXmFTq6BTovJ6aC7dSbqfURRu0y6NTMLyp1ZJeVN4,1436
168
- holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py,sha256=A34_xlssBxbC3KmTLjwkvdCM1-5KR0oO9KO-c6irj2g,22719
169
- holmes/plugins/toolsets/grafana/trace_parser.py,sha256=O6fJqUwvpCKL5hAdDtPIZ3LkpTbcDSVPLlLIdNqAbuk,7025
179
+ holmes/plugins/toolsets/grafana/toolset_grafana.py,sha256=yHLfDcpqhrCPpdsuxqYN7P-vj284H8A-8rsX0G_oSk0,9401
180
+ holmes/plugins/toolsets/grafana/toolset_grafana_dashboard.jinja2,sha256=cSZ17PfyMA-_ObZXrNRgEPBNz6tq8P5MQmkPQNVhBb8,825
181
+ holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2,sha256=0HBYUXkGYWZbHwIvfQEF5oL9LFMYzjgcmL1U6RjgPSE,10417
182
+ holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py,sha256=DyBJH1u4ZqPO23XBj1HgojoV23CT2pU9b6PIKuJBEA4,38148
183
+ holmes/plugins/toolsets/grafana/trace_parser.py,sha256=8PjqPGDGo9uB2Z8WWWknMKdhcqlqZEVncQCCkl2F06A,7024
170
184
  holmes/plugins/toolsets/helm.yaml,sha256=-IPDChKMHcxGbzA0z9GKczRshL-mD24cHpBizfNM1jM,1604
171
- holmes/plugins/toolsets/internet/internet.py,sha256=zuI6tTdGF1ahg16xsIisRw3EPT6Tb1dCPlZ8bvCVry8,7749
172
- holmes/plugins/toolsets/internet/notion.py,sha256=dIeXJUCOZBdGmcgJJWeH2RcTyXdPsfNONj7T0_5iap4,4757
185
+ holmes/plugins/toolsets/internet/internet.py,sha256=Ovq8EEW_PizUxgAm3YEMkdd3TFiuKRiINXcd4zBgw4U,7786
186
+ holmes/plugins/toolsets/internet/notion.py,sha256=ELDtsP8kxdU8rExEL8hq1yV5DEeWDNOljHZEwjnumJc,4795
173
187
  holmes/plugins/toolsets/investigator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
- holmes/plugins/toolsets/investigator/core_investigation.py,sha256=24GCRO5oDd9Jhkl4te9Kj6XBiq9LkGZ-NY7tZmKKp9o,5233
188
+ holmes/plugins/toolsets/investigator/core_investigation.py,sha256=FQmQT6AkE0-oq8Alo7GfCx_tPJo0Sby1_nOlcUW9JGU,5389
175
189
  holmes/plugins/toolsets/investigator/investigator_instructions.jinja2,sha256=C6y6OaJI2dQSLSw7Zq9-D-sWmL5K_40zRItvkzVAdH4,13967
176
190
  holmes/plugins/toolsets/investigator/model.py,sha256=6AE9Iy05GaX3gC9ChTtZQOFGjSUsas_pB9_YyDaJXP0,342
177
- holmes/plugins/toolsets/kafka.py,sha256=7iIsiW0a7MCsehU2pB5-FRq0cuEat94xsK6FWBT3zkQ,24661
178
- holmes/plugins/toolsets/kubernetes.yaml,sha256=JNMk1LHb52hTPWKR9vLEocMdzGijZWcDrv6JSaq9Teg,14848
179
- holmes/plugins/toolsets/kubernetes_logs.py,sha256=toUanqfUEW3yGZhVhUA7bPJC3a64iZSlUQ-6jjVDq0Y,32754
180
- holmes/plugins/toolsets/kubernetes_logs.yaml,sha256=cpfd7CpDl6oLPApBFQXUFxsI-QOdIlolpDAI7hsMvyE,2655
191
+ holmes/plugins/toolsets/kafka.py,sha256=kO_CKzdXG__6QmiwaGumZgPkdZbft0f1DpqhNV8ogs8,24774
192
+ holmes/plugins/toolsets/kubernetes.yaml,sha256=uBg_jRDrM6QFuiOi0-q8TRC93tCBLJiEc27mPMVlx4M,13683
193
+ holmes/plugins/toolsets/kubernetes_logs.py,sha256=b84d-yCrGq9ua4B_zeitUy9AqDcUdipRAY71IFe5C7s,32814
194
+ holmes/plugins/toolsets/kubernetes_logs.yaml,sha256=3AhUKihYMSL57Tm_y5HgEbtyoer6Kpm7oAcRz1GxgDw,4532
181
195
  holmes/plugins/toolsets/logging_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
- holmes/plugins/toolsets/logging_utils/logging_api.py,sha256=seW5DNSzREQx4nmkt9NEqN21j8jTPNSJyOkCrdcdWoQ,11615
196
+ holmes/plugins/toolsets/logging_utils/logging_api.py,sha256=AG-EJnkzRLq8s4naG3yyuYjl3y_Q2oOwCYvmto8Ydc0,15475
183
197
  holmes/plugins/toolsets/logging_utils/types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
- holmes/plugins/toolsets/mcp/toolset_mcp.py,sha256=tYc_fjBE3ycM2HPJjwW_EviSb2B8Psf3pj_AnMQZ01g,4874
185
- holmes/plugins/toolsets/newrelic.py,sha256=diC1zNhV9awH0in7WdOL_L5PaLFQ_u_F-JCSHptGmKY,7843
198
+ holmes/plugins/toolsets/mcp/toolset_mcp.py,sha256=v_C6Jvf69y013_ykkoxkxpAVCuYbJ5OfBHKIl2VgAhg,9007
199
+ holmes/plugins/toolsets/newrelic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
+ holmes/plugins/toolsets/newrelic/new_relic_api.py,sha256=i_rxTjwt-qK9MASQSp5lI_C4HoegRJITV5Z5qsBdJ90,4077
201
+ holmes/plugins/toolsets/newrelic/newrelic.jinja2,sha256=O782MgMO17j-C8BnKbZmr0_bGoHn-1JJJX40IiLrKLk,3547
202
+ holmes/plugins/toolsets/newrelic/newrelic.py,sha256=DzFhNq-wwm1fmHU-ORVCRnbJddcIfkCmSbNntpeqoMA,6370
186
203
  holmes/plugins/toolsets/opensearch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
- holmes/plugins/toolsets/opensearch/opensearch.py,sha256=rLbwYQJbKsPRA57rbo9Kae9v7SNd8B0GZqHVUk3UJWQ,8616
188
- holmes/plugins/toolsets/opensearch/opensearch_logs.py,sha256=-WlOPzjLwQuEoKi_4r5KZZNnKuvBZO0EFO2NnFflf1M,5859
189
- holmes/plugins/toolsets/opensearch/opensearch_traces.py,sha256=d-q9S6XKAestwk2WrPYqA5f5ViltH5PaAyly3FhhZ10,8776
204
+ holmes/plugins/toolsets/opensearch/opensearch.py,sha256=VVyEJnECRfhwNUQqilugi9t0tPymyp7hRFwYQSFDg2E,8629
205
+ holmes/plugins/toolsets/opensearch/opensearch_logs.py,sha256=_j-JAhLWtxhBPafCveympxtxQ2EalsqKW6jLfaXHG94,5929
206
+ holmes/plugins/toolsets/opensearch/opensearch_ppl_query_docs.jinja2,sha256=D1Xl_tFfZ91XvzRqdUjsrH0vQjs95Ddn_EPwMcwlzcs,56327
207
+ holmes/plugins/toolsets/opensearch/opensearch_query_assist.py,sha256=lt27E6Ey7EQ34YejSOrUWYlHnWTnqdgm7wHMGVVjZUo,2721
208
+ holmes/plugins/toolsets/opensearch/opensearch_query_assist_instructions.jinja2,sha256=Qoqb8wFqj0WBukA_uhA6l-2bFs06PqYFDESQCN_uWZQ,6699
209
+ holmes/plugins/toolsets/opensearch/opensearch_traces.py,sha256=Xd_toAzZikdUrInZG8_oBQ0gI-QCvYrf0w2ZciFC1kU,8869
190
210
  holmes/plugins/toolsets/opensearch/opensearch_traces_instructions.jinja2,sha256=Xn8AW4XCMYV1VkBbF8nNB9fUpKQ1Vbm88iFczj-LQXo,1035
191
211
  holmes/plugins/toolsets/opensearch/opensearch_utils.py,sha256=mh9Wp22tOdJYmA9IaFS7tD3aEENljyeuPOsF-lEe5C0,5097
192
- holmes/plugins/toolsets/prometheus/prometheus.py,sha256=rA23Y8Jwu6jsUPGOH0hX0kbfV0yI-XysQwR33tL43gA,39179
193
- holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2,sha256=7IR5cIIhLKkFFVjuJh6Lg6HkuNuyTt9WYKMAo_nZMqs,2842
212
+ holmes/plugins/toolsets/openshift.yaml,sha256=H3Z1N2d4lQ8xK8AZyXWAdumjLCXE-89q7VcSS5CgWUg,15719
213
+ holmes/plugins/toolsets/prometheus/prometheus.py,sha256=Ip18XzSxqT0lPCQ2jnZ5MXUQoodOZdCak6KZI_IyqnM,67743
214
+ holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2,sha256=taf5C-N9rdp1A7S__hETefcm2OaYHJLjs1ZbuqIsGtE,6383
215
+ holmes/plugins/toolsets/prometheus/utils.py,sha256=ZenD354dP0sRmm0R-QBuAq1jyn40GjYf4wx15bXIYRc,775
194
216
  holmes/plugins/toolsets/rabbitmq/api.py,sha256=-BtqF7hQWtl_OamnQ521vYHhR8E2n2wcPNYxfI9r4kQ,14307
195
217
  holmes/plugins/toolsets/rabbitmq/rabbitmq_instructions.jinja2,sha256=qetmtJUMkx9LIihr2fSJ2EV9h2J-b-ZdUAvMtopXZYY,3105
196
- holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py,sha256=4-hM42XFIFwVVt-9XjMOtO2Y86cgByKpqdP65foB_l8,9223
218
+ holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py,sha256=k1Sq0Iw8f4ygLVdMDSWMXEGqLX5Jq98hTDcAlsjrv6A,9286
197
219
  holmes/plugins/toolsets/robusta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
- holmes/plugins/toolsets/robusta/robusta.py,sha256=MDDD51yuISEpeSuH5ms8m3oFUPP5kIn-xr_k9ToWRrY,8863
199
- holmes/plugins/toolsets/robusta/robusta_instructions.jinja2,sha256=E3UxlbyoNx96Fsk6d1laBTrnca1nLreWGMWnGPD2KbI,2060
220
+ holmes/plugins/toolsets/robusta/robusta.py,sha256=5TjYsHd9_cItj1RigwJuBaLyL9mBB0pnnKpHKk4gKxc,16911
221
+ holmes/plugins/toolsets/robusta/robusta_instructions.jinja2,sha256=q-R3t5YmTznGcrZG19sAjyGVgOglBJALNgaVK73cyJY,4119
200
222
  holmes/plugins/toolsets/runbook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
201
- holmes/plugins/toolsets/runbook/runbook_fetcher.py,sha256=-rnrcc_3NMxpZiE-QpOwoTVNb3qBWgfkPYmaaCYCtDQ,6723
202
- holmes/plugins/toolsets/service_discovery.py,sha256=QVrCCVcTE7APqyr0C44MGmJyCW9Ft-Ac-Wr4XfFBfjA,3268
203
- holmes/plugins/toolsets/servicenow/install.md,sha256=UeL069Qd2e4wC3kmc54wk62AoSpyeizKWV6NB1jUYVM,1217
204
- holmes/plugins/toolsets/servicenow/instructions.jinja2,sha256=koA2vJ1tOkGi2T5aGjmk9oTZPrt7WdoMSuVyxfO5-k4,491
205
- holmes/plugins/toolsets/servicenow/servicenow.py,sha256=i8cA3w2JiK8RzmXCukz7iRM704zFjqCodB5l0g6liRA,8506
223
+ holmes/plugins/toolsets/runbook/runbook_fetcher.py,sha256=ITwAZYODFeMmk7Cea-YLDXj6IetYf2TPS4F4pZdnXkU,11529
224
+ holmes/plugins/toolsets/service_discovery.py,sha256=HqENA92SyN7Z_Kd8OZVfw-S9PwdYhn6HDFUAo1-fosw,3268
225
+ holmes/plugins/toolsets/servicenow_tables/instructions.jinja2,sha256=8ry8i0hFufpGqeKFhB3wZREwBKJSFEctQrcxAvT9NDY,3613
226
+ holmes/plugins/toolsets/servicenow_tables/servicenow_tables.py,sha256=NGfk9-IYbLR6eSYR5lEqv4CQFBI17zx62pzD1BTWBog,18901
206
227
  holmes/plugins/toolsets/slab.yaml,sha256=1Pz0Rzs0B6-TnJiiN2w8qJ9E_bh2haQn0mfhTszaZE0,677
207
- holmes/plugins/toolsets/utils.py,sha256=AaopqyljTUtkHgDKcgrVDDQvnmdQWKLch9aOZai-VwM,4413
228
+ holmes/plugins/toolsets/utils.py,sha256=EZqPEBJcnMZliWMiN82XOQstr_NwanEqnzsd6incEFk,6891
208
229
  holmes/plugins/utils.py,sha256=Wn_UxZMB4V2_UiJDNy0pifGnIGS_zUwRhUlmttCywnY,372
209
230
  holmes/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
231
  holmes/utils/cache.py,sha256=aPc7zTdpBQ3JQR7ET4wvIwzXhx2PpPKiBBSTgbVNXlY,2219
211
232
  holmes/utils/cert_utils.py,sha256=5YAUOY3LjFqqFpYHnHLvSc70LCxEWf0spw1vZwLLvOw,1193
212
233
  holmes/utils/colors.py,sha256=G-1EcwwOjLmilL74M4AfOGxvlGSMaDfGT518A9Iek2k,221
234
+ holmes/utils/config_utils.py,sha256=w69TLsd-qFSK3yBpG2aBIIN1Y2K-DLdxEW_1rvJDUbs,3625
213
235
  holmes/utils/console/consts.py,sha256=SXcXHWjMH63nh5ErDKR6K7wrCUoxxlZ0KKM1Ipoy6J4,387
214
236
  holmes/utils/console/logging.py,sha256=2HLGg58VKfECD4YhSMacIoSRt9b7tbVMDthuHa-qj6I,3253
215
237
  holmes/utils/console/result.py,sha256=lCnn1YX6J36d1GTVYX0jkp8QrJKVosq8t7z7G1j6hhA,1386
216
- holmes/utils/default_toolset_installation_guide.jinja2,sha256=HEf7tX75HE3H4-YeLbJfa0WbiLEsI71usKrXHCO_sHo,992
238
+ holmes/utils/default_toolset_installation_guide.jinja2,sha256=-GyBn3bO24bV7H3GHQRq9lgFyfA9tgN858qTkPfxlu0,580
217
239
  holmes/utils/definitions.py,sha256=WKVDFh1wfuo0UCV_1jXFjgP0gjGM3-U-UdxdVxmXaKM,287
218
- holmes/utils/env.py,sha256=7hLrfn6DGLJu2105CurM8UoJzDXLEXdiJwhgj79fYtI,1761
240
+ holmes/utils/env.py,sha256=Gcm-Lvp8HRjSu2pZxg4ob0gtKMRxvyum77lCJ5zdCi0,1951
219
241
  holmes/utils/file_utils.py,sha256=uN5JCH6QQqY8dXwFtQ7AuzlfOCUqOuAzP3TQZSau9MU,1694
220
- holmes/utils/global_instructions.py,sha256=43M_ubhlgBH6YmPUHfkQkxcAR4WkfdINQ0WPrWGime0,578
221
- holmes/utils/holmes_status.py,sha256=7qUJU3TwMpQXS4Wri5dL2quUsZMkX0sR0OS9m0LHOms,737
222
- holmes/utils/holmes_sync_toolsets.py,sha256=HNUMstaPP2NS5bnEHJMPFjKbAgvsevuuTdDiSUZ7Pkk,3225
242
+ holmes/utils/global_instructions.py,sha256=cs1FofsVd9nfABELyTDfgLP3_pReAhktWLPcQH8NaTQ,2749
243
+ holmes/utils/holmes_status.py,sha256=ypKh7cS_PpHmuKSsj389Vu3zfNpwq-U51ou2x8Plcw4,761
244
+ holmes/utils/holmes_sync_toolsets.py,sha256=sePYPOjOVmo8FAxePTvv1D4-IPhIze6Nb3wOXpnjgyM,3147
223
245
  holmes/utils/keygen_utils.py,sha256=qZ0aIAqItsoX1egAJ2TFiHjaARLYAIid94-VgMq_bB0,135
246
+ holmes/utils/krr_utils.py,sha256=ObQ_hfZ5ceazy3w6oGt9eQjRDAPhTNnO3dowMZ1AoY0,6744
224
247
  holmes/utils/llms.py,sha256=YLqq54I84wW7Kp7Z7CPVTxAFPb-Sq6xkdmVGzVf60jI,629
225
248
  holmes/utils/markdown_utils.py,sha256=_yDc_IRB5zkj9THUlZ6nzir44VfirTjPccC_DrFrBkc,1507
226
249
  holmes/utils/pydantic_utils.py,sha256=g0e0jLTa8Je8JKrhEP4N5sMxj0_hhPOqFZr0Vpd67sg,1649
227
- holmes/utils/stream.py,sha256=Z9duSET8uXx-1dqPBjGuDKBxkJMaMsCrOqOXrVbtjGw,2806
250
+ holmes/utils/sentry_helper.py,sha256=BPkyMs7Yo_0b7QLMmAQ3mKZyXTmxkgVRjr3kikr5ZX8,1328
251
+ holmes/utils/stream.py,sha256=YgwCgXQjlM6gSKCjTU5ZSeHK9q_VMOoL8_-iL5hQhek,4873
228
252
  holmes/utils/tags.py,sha256=SU4EZMBtLlIb7OlHsSpguFaypczRzOcuHYxDSanV3sQ,3364
229
- holmes/version.py,sha256=uDRPOvVaHreROj_9HPe81RVpTzHcG8ojpGTsnJIlQOM,5220
230
- holmesgpt-0.13.2.dist-info/LICENSE.txt,sha256=RdZMj8VXRQdVslr6PMYMbAEu5pOjOdjDqt3yAmWb9Ds,1072
231
- holmesgpt-0.13.2.dist-info/METADATA,sha256=HX9g-wTHyO3kWf-SFNb-StNxY5rTgBkzHJv-laWsDX4,16237
232
- holmesgpt-0.13.2.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
233
- holmesgpt-0.13.2.dist-info/entry_points.txt,sha256=JdzEyZhpaYr7Boo4uy4UZgzY1VsAEbzMgGmHZtx9KFY,42
234
- holmesgpt-0.13.2.dist-info/RECORD,,
253
+ holmes/version.py,sha256=5-3__IY_2hcIC4WQyTqcdyX1QF-e2VfkYKrI4BIrq0Q,5992
254
+ holmesgpt-0.16.2a0.dist-info/LICENSE,sha256=To11ahvEeW4Vlz3wgs9yuR9eYf7E7GjWeZEEZwwQjQg,10208
255
+ holmesgpt-0.16.2a0.dist-info/METADATA,sha256=glpCc78gouP8FxjqmCCpIxJDn0c9rwbAzJ9hSF986DE,16502
256
+ holmesgpt-0.16.2a0.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
257
+ holmesgpt-0.16.2a0.dist-info/entry_points.txt,sha256=JdzEyZhpaYr7Boo4uy4UZgzY1VsAEbzMgGmHZtx9KFY,42
258
+ holmesgpt-0.16.2a0.dist-info/RECORD,,
@@ -1,72 +0,0 @@
1
- import time
2
- import logging
3
-
4
- from functools import wraps
5
-
6
- from holmes.common.env_vars import (
7
- LOG_PERFORMANCE,
8
- )
9
-
10
-
11
- class PerformanceTiming:
12
- def __init__(self, name):
13
- self.ended = False
14
-
15
- self.name = name
16
- self.start_time = time.time()
17
- self.last_measure_time = self.start_time
18
- self.last_measure_label = "Start"
19
- self.timings = []
20
-
21
- def measure(self, label):
22
- if not LOG_PERFORMANCE:
23
- return
24
- if self.ended:
25
- raise Exception("cannot measure a perf timing that is already ended")
26
- current_time = time.time()
27
-
28
- time_since_start = int((current_time - self.start_time) * 1000)
29
- time_since_last = int((current_time - self.last_measure_time) * 1000)
30
-
31
- self.timings.append((label, time_since_last, time_since_start))
32
-
33
- self.last_measure_time = current_time
34
- self.last_measure_label = label
35
-
36
- def end(self, custom_message: str = ""):
37
- if not LOG_PERFORMANCE:
38
- return
39
- self.ended = True
40
- current_time = time.time()
41
- time_since_start = int((current_time - self.start_time) * 1000)
42
- message = f"{self.name} {custom_message} {time_since_start}ms"
43
- logging.info(message)
44
- if LOG_PERFORMANCE:
45
- for label, time_since_last, time_since_start in self.timings:
46
- logging.info(
47
- f"\t{self.name}({label}) +{time_since_last}ms {time_since_start}ms"
48
- )
49
-
50
-
51
- def log_function_timing(label=None):
52
- def decorator(func):
53
- @wraps(func)
54
- def function_timing_wrapper(*args, **kwargs):
55
- start_time = time.perf_counter()
56
- result = func(*args, **kwargs)
57
- end_time = time.perf_counter()
58
- total_time = int((end_time - start_time) * 1000)
59
-
60
- function_identifier = (
61
- f'"{label}: {func.__name__}()"' if label else f'"{func.__name__}()"'
62
- )
63
- logging.info(f"Function {function_identifier} took {total_time}ms")
64
- return result
65
-
66
- return function_timing_wrapper
67
-
68
- if callable(label):
69
- func = label
70
- label = None
71
- return decorator(func)
72
- return decorator
@@ -1,124 +0,0 @@
1
- import requests # type: ignore
2
- from typing import Dict, List, Optional
3
- import backoff
4
-
5
- from holmes.plugins.toolsets.grafana.common import build_headers
6
- from holmes.plugins.toolsets.grafana.trace_parser import process_trace
7
-
8
-
9
- def execute_tempo_query_with_retry(
10
- base_url: str,
11
- api_key: Optional[str],
12
- headers: Optional[Dict[str, str]],
13
- query_params: dict,
14
- retries: int = 3,
15
- timeout: int = 5,
16
- ):
17
- """
18
- Execute a Tempo API query through Grafana with retries and timeout.
19
-
20
- Args:
21
- tempo_datasource_uid: The UID of the Tempo datasource.
22
- query_params: Query parameters for the API.
23
- retries: Number of retries for the request.
24
- timeout: Timeout for each request in seconds.
25
-
26
- Returns:
27
- List of trace results.
28
- """
29
- url = f"{base_url}/api/search"
30
-
31
- @backoff.on_exception(
32
- backoff.expo, # Exponential backoff
33
- requests.exceptions.RequestException, # Retry on request exceptions
34
- max_tries=retries, # Maximum retries
35
- giveup=lambda e: isinstance(e, requests.exceptions.HTTPError)
36
- and e.response.status_code < 500,
37
- )
38
- def make_request():
39
- response = requests.post(
40
- url,
41
- headers=build_headers(api_key=api_key, additional_headers=headers),
42
- json=query_params,
43
- timeout=timeout, # Set timeout for the request
44
- )
45
- response.raise_for_status() # Raise an error for non-2xx responses
46
- return response.json()
47
-
48
- try:
49
- return make_request()
50
- except requests.exceptions.RequestException as e:
51
- raise Exception(f"Request to Tempo API failed after retries: {e}")
52
-
53
-
54
- def query_tempo_traces(
55
- base_url: str,
56
- api_key: Optional[str],
57
- headers: Optional[Dict[str, str]],
58
- query: Optional[str],
59
- start: int,
60
- end: int,
61
- limit: int,
62
- ) -> Dict:
63
- query_params = {
64
- "start": str(start),
65
- "end": str(end),
66
- "limit": str(limit),
67
- }
68
-
69
- if query:
70
- query_params["q"] = query
71
- data = execute_tempo_query_with_retry(
72
- base_url=base_url,
73
- api_key=api_key,
74
- headers=headers,
75
- query_params=query_params,
76
- )
77
- return data
78
-
79
-
80
- def query_tempo_trace_by_id(
81
- base_url: str,
82
- api_key: Optional[str],
83
- headers: Optional[Dict[str, str]],
84
- trace_id: str,
85
- key_labels: List[str],
86
- retries: int = 3,
87
- timeout: int = 5,
88
- ) -> str:
89
- """
90
- Query Tempo for a specific trace by its ID with retries and backoff.
91
-
92
- Args:
93
- tempo_datasource_id: The ID of the Tempo datasource.
94
- trace_id: The trace ID to retrieve.
95
- retries: Number of retries for the request.
96
- timeout: Timeout for each request in seconds.
97
-
98
- Returns:
99
- A formatted trace details string
100
- """
101
- url = f"{base_url}/api/traces/{trace_id}"
102
-
103
- @backoff.on_exception(
104
- backoff.expo,
105
- requests.exceptions.RequestException,
106
- max_tries=retries,
107
- giveup=lambda e: isinstance(e, requests.exceptions.HTTPError)
108
- and e.response.status_code < 500,
109
- )
110
- def make_request():
111
- response = requests.get(
112
- url,
113
- headers=build_headers(api_key=api_key, additional_headers=headers),
114
- timeout=timeout,
115
- )
116
- response.raise_for_status()
117
- return process_trace(response.json(), key_labels)
118
-
119
- try:
120
- return make_request()
121
- except requests.exceptions.RequestException as e:
122
- raise Exception(
123
- f"Failed to retrieve trace by ID after retries: {e} \n for URL: {url}"
124
- )