holmesgpt 0.14.4a0__py3-none-any.whl → 0.16.0__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.

Potentially problematic release.


This version of holmesgpt might be problematic. Click here for more details.

Files changed (37) hide show
  1. holmes/__init__.py +1 -1
  2. holmes/clients/robusta_client.py +12 -10
  3. holmes/common/env_vars.py +22 -0
  4. holmes/config.py +51 -4
  5. holmes/core/conversations.py +3 -2
  6. holmes/core/llm.py +226 -72
  7. holmes/core/openai_formatting.py +13 -0
  8. holmes/core/supabase_dal.py +33 -42
  9. holmes/core/tool_calling_llm.py +185 -282
  10. holmes/core/tools.py +21 -1
  11. holmes/core/tools_utils/token_counting.py +2 -1
  12. holmes/core/tools_utils/tool_context_window_limiter.py +32 -30
  13. holmes/core/truncation/compaction.py +59 -0
  14. holmes/core/truncation/input_context_window_limiter.py +218 -0
  15. holmes/interactive.py +17 -7
  16. holmes/plugins/prompts/_general_instructions.jinja2 +1 -2
  17. holmes/plugins/prompts/conversation_history_compaction.jinja2 +88 -0
  18. holmes/plugins/toolsets/__init__.py +4 -0
  19. holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py +0 -1
  20. holmes/plugins/toolsets/azure_sql/azure_sql_toolset.py +0 -1
  21. holmes/plugins/toolsets/grafana/grafana_api.py +1 -1
  22. holmes/plugins/toolsets/investigator/core_investigation.py +34 -24
  23. holmes/plugins/toolsets/opensearch/opensearch_ppl_query_docs.jinja2 +1616 -0
  24. holmes/plugins/toolsets/opensearch/opensearch_query_assist.py +78 -0
  25. holmes/plugins/toolsets/opensearch/opensearch_query_assist_instructions.jinja2 +223 -0
  26. holmes/plugins/toolsets/prometheus/prometheus.py +1 -1
  27. holmes/plugins/toolsets/robusta/robusta.py +35 -8
  28. holmes/plugins/toolsets/robusta/robusta_instructions.jinja2 +4 -3
  29. holmes/plugins/toolsets/service_discovery.py +1 -1
  30. holmes/plugins/toolsets/servicenow/servicenow.py +0 -1
  31. holmes/utils/stream.py +31 -1
  32. {holmesgpt-0.14.4a0.dist-info → holmesgpt-0.16.0.dist-info}/METADATA +6 -2
  33. {holmesgpt-0.14.4a0.dist-info → holmesgpt-0.16.0.dist-info}/RECORD +36 -31
  34. holmes/core/performance_timing.py +0 -72
  35. {holmesgpt-0.14.4a0.dist-info → holmesgpt-0.16.0.dist-info}/LICENSE.txt +0 -0
  36. {holmesgpt-0.14.4a0.dist-info → holmesgpt-0.16.0.dist-info}/WHEEL +0 -0
  37. {holmesgpt-0.14.4a0.dist-info → holmesgpt-0.16.0.dist-info}/entry_points.txt +0 -0
@@ -1,31 +1,30 @@
1
1
  holmes/.git_archival.json,sha256=PbwdO7rNhEJ4ALiO12DPPb81xNAIsVxCA0m8OrVoqsk,182
2
- holmes/__init__.py,sha256=9FiOTz-KGiO83Ov6cuM3i36OTKuSEoscoIUzJoGYFlI,263
3
- holmes/clients/robusta_client.py,sha256=rWst1PANJaIsprp3jZ7RV5UpttM_YLBGQ8B5noZqvgg,1532
4
- holmes/common/env_vars.py,sha256=p9xO7bDjyPNJr7S4OO-GkMR1RYaj4aWxTtcy5JTzJKU,3521
2
+ holmes/__init__.py,sha256=0nXci66VjsOpEKFNT6utHH7QLkZ14FWaqtPQ2syHOdc,257
3
+ holmes/clients/robusta_client.py,sha256=YZA70OXGO0WZGTqtBhKiOtP7bhsrSW_f2Ea3Qcg9aMY,1530
4
+ holmes/common/env_vars.py,sha256=IdNr-cNaTX80-h4HuFvzCM9451dddY7vKJi-1IpqTm8,4263
5
5
  holmes/common/openshift.py,sha256=akbQ0GpnmuzXOqTcotpTDQSDKIROypS9mgPOprUgkCw,407
6
- holmes/config.py,sha256=uwSbVxWvXp5B4XRk9GkMMcQG8tgFfrYj7PRex-qn54w,21743
6
+ holmes/config.py,sha256=1t732ILkEBKxzXchupNHwxVsRy7H-v4LpYNbi5DqE8Y,23330
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=iSfYBD88fO-irkCKqy3wm7CV1wn8g89e5GxJlpdn1MA,21723
9
+ holmes/core/conversations.py,sha256=3pSKGJi2gjAiCJ9HQYC2EsNLyQkjV1YlTV1_puNqQw4,21744
10
10
  holmes/core/feedback.py,sha256=Gu69ghRYGSCPDgFA77xOB5RPbVdQX-9Qpv4yVVegL4g,6793
11
11
  holmes/core/investigation.py,sha256=HrRi1-myPF7ndOwwZ4Sv8iUbvPkrd5M02RPhZzln7NM,5900
12
12
  holmes/core/investigation_structured_output.py,sha256=sNxyqmsElQ-B22OlzTOrJtfrlipjyidcTU07idOBO7w,10570
13
13
  holmes/core/issue.py,sha256=dbctGv8KHAXC1SeOMkEP-BudJ50u7kA8jLN5FN_d808,2426
14
- holmes/core/llm.py,sha256=UQ2Ml4hJS1YDidCaU1Rz6km3qcgycjz-cuuo2coSPxw,22773
14
+ holmes/core/llm.py,sha256=3qFMjMflFba1NDk64oaU2lPi7Yr8oktYPdNKxzEQ8cM,28423
15
15
  holmes/core/models.py,sha256=xFHFutZWoIaQWSeuq1PiYPw9SGkDrQsQ9qYXuk60EEU,9096
16
- holmes/core/openai_formatting.py,sha256=wL0Fq6lDePIKR5viitQz9ZWCQZZkHZHmEUqPIsOoFns,4077
17
- holmes/core/performance_timing.py,sha256=MTbTiiX2jjPmW7PuNA2eYON40eWsHPryR1ap_KlwZ_E,2217
16
+ holmes/core/openai_formatting.py,sha256=31MwVvu0v0JiXot4Y0AwDJlFYe9vx8IB6mZiyC1y_lo,4684
18
17
  holmes/core/prompt.py,sha256=YkztY4gsobXys0fHxcwgngZBR2xDtBSYryY7HRnTxCQ,3025
19
18
  holmes/core/resource_instruction.py,sha256=rduue_t8iQi1jbWc3-k3jX867W1Fvc6Tah5uOJk35Mc,483
20
19
  holmes/core/runbooks.py,sha256=Oj5ICmiGgaq57t4erPzQDvHQ0rMGj1nhiiYhl8peH3Q,939
21
20
  holmes/core/safeguards.py,sha256=XrKgmMoJxSROfoSOW6t6QEG2MFppzC20Nyn1HA5G4Go,4935
22
- holmes/core/supabase_dal.py,sha256=KSNwGz1v5dZAk_sDme1JCrPTJKc2fwApKQQu_U_r3cM,22433
21
+ holmes/core/supabase_dal.py,sha256=KFkvcw_IaM88eNgOlueZI7jodAs-b62hsTGAa6g2CtI,21804
23
22
  holmes/core/todo_tasks_formatter.py,sha256=USyJZcoX6zoxID1UV-abAKdaWFYLO6QJd-UKryJAurI,1487
24
- holmes/core/tool_calling_llm.py,sha256=YUUFmoTDw11ERC78gg2jTRZ6t9Dy_ba8wQiyJeJWL0k,50206
25
- holmes/core/tools.py,sha256=IOBmRdwTKeHvbvxlcT8xYJmBLcNI9CGP_iwrI-WhVio,31786
23
+ holmes/core/tool_calling_llm.py,sha256=JCj-hl1WjdTECaup_dYSh_PzWPe5Bf4-rGppCjAPVr0,45637
24
+ holmes/core/tools.py,sha256=V0YZogQUzGUVg79mTaS0cfSh6nR_NS1zhOr0h6sNpZU,32730
26
25
  holmes/core/tools_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- holmes/core/tools_utils/token_counting.py,sha256=3WTAgi19uK1IbtwivtSibiZWwqdtZeOOgZCVFRxUJG8,406
28
- holmes/core/tools_utils/tool_context_window_limiter.py,sha256=LoehZXp2C2ptoxbfZzzCe_t02iQOdhz-eM0k159ZIb8,2605
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
29
28
  holmes/core/tools_utils/tool_executor.py,sha256=pUkddbm_kgYdfhR1w5IbnSmwG56kvA4VadzBV8OqG8g,2632
30
29
  holmes/core/tools_utils/toolset_utils.py,sha256=SvWzen8Fg_TB_6Idw1hK0nCPrJL40ueWVMfsv8Kh2RY,2363
31
30
  holmes/core/toolset_manager.py,sha256=UqAUfjY09SAGirOHzyQwpOu2wxQUzU0F1STw8w-1abw,25878
@@ -35,8 +34,10 @@ holmes/core/transformers/base.py,sha256=FHUocHIS_oUBLWMiibdAuKY0Lpz5xY2ICji6DbmP
35
34
  holmes/core/transformers/llm_summarize.py,sha256=ZEJn3DElzMZLCCHNIzlCozllM2CmQ-JyXiqaGO7dAw4,6407
36
35
  holmes/core/transformers/registry.py,sha256=x8kKRXJvc_tJO2RvNGyoVXt6rFgG4S_ZcTG8p_OXYH0,3771
37
36
  holmes/core/transformers/transformer.py,sha256=rfT84Oq6qJyryevZGFKEbo1VSxinK4FBWUw_HpJ72xE,1028
37
+ holmes/core/truncation/compaction.py,sha256=tIm8hM6bLA_NKG0--LAewmdNjUnw9NTOJlcLgfntYLI,2118
38
38
  holmes/core/truncation/dal_truncation_utils.py,sha256=I69I7Jac1kTtpxDRMe8O3IPN8Au0bZJqI8gXwW-GMaI,776
39
- holmes/interactive.py,sha256=bXP9qRsClwW0AlxNDWHJfJTeEwGByAoNUfL4cypJjtg,46767
39
+ holmes/core/truncation/input_context_window_limiter.py,sha256=spTOqBGKu1yputPxMt5xv46bemkMmvOWGW9bnIQB-NQ,8897
40
+ holmes/interactive.py,sha256=MGo5b6PKfQWrCmwMKMiISjNY02KWDxgoKdUAfcwmjTE,47102
40
41
  holmes/main.py,sha256=cz3i9YZkvXWTK8pk5O-LfAM5AsYcOcTEKYnbvpVY5ns,35001
41
42
  holmes/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
43
  holmes/plugins/destinations/__init__.py,sha256=vMYwTfA5nQ05us5Rzbaoe0R5C8Navo6ENVZhojtACTk,98
@@ -48,11 +49,12 @@ holmes/plugins/prompts/_ai_safety.jinja2,sha256=IoVdOXHnkGwLaiuUzMczEdoahyrKhkdY
48
49
  holmes/plugins/prompts/_current_date_time.jinja2,sha256=KynAvkQFqf_SXjqVY77nB8z4RgN7gti4SBSq1H7moHs,354
49
50
  holmes/plugins/prompts/_default_log_prompt.jinja2,sha256=Tqw8CD2ZMStXIfMdYaoZT_d-FvQ_PMg6-knqag-YEgc,1478
50
51
  holmes/plugins/prompts/_fetch_logs.jinja2,sha256=penrJcRCfr8geKWNSQc-jdJ52dV-bEb1kxO6QB90dzw,5088
51
- holmes/plugins/prompts/_general_instructions.jinja2,sha256=0RB5TFGqhbQ-xNt2_oHXJjvMIBLThuRDusBbbEruy2w,5777
52
+ holmes/plugins/prompts/_general_instructions.jinja2,sha256=IvGkmKaIrG7wXJlVcNqtYrst1Z-vRZYRMENzf_nDoz4,5774
52
53
  holmes/plugins/prompts/_global_instructions.jinja2,sha256=d_c-BtDhU_Rmx637TPAyzlIIim8ZAxy7JK3V4GV8IWI,1359
53
54
  holmes/plugins/prompts/_permission_errors.jinja2,sha256=gIMQx-zaTnuEv7SkQVC_GvxsR5R85fLuDZnJIKWcm5A,480
54
55
  holmes/plugins/prompts/_runbook_instructions.jinja2,sha256=ngm3rmPPvgPG-9fjtR3yVb84YQNdNWfWShDGIag1JnY,1121
55
56
  holmes/plugins/prompts/_toolsets_instructions.jinja2,sha256=MaK5HRxhJyZ3I9zsmgdLO4lU95l24CwGp70ON5xHLMc,3024
57
+ holmes/plugins/prompts/conversation_history_compaction.jinja2,sha256=F-m7soEKD01uifWKWEczvraLBvjDAkPo3PrOJcaqyRw,4884
56
58
  holmes/plugins/prompts/generic_ask.jinja2,sha256=wHAPX8SQaF_xpaYiLkwDuhQYYaKRsBPxFkciY6A3_QY,1997
57
59
  holmes/plugins/prompts/generic_ask_conversation.jinja2,sha256=qsWIHkrLTHMJSSx62kzGaZBLWmSgOmyhpMQRYoZqj_I,1610
58
60
  holmes/plugins/prompts/generic_ask_for_issue_conversation.jinja2,sha256=ooAPhHr7yEDQWziOTnjEUtDUZrGcApLNz2h5RS-0XnA,2074
@@ -78,12 +80,12 @@ holmes/plugins/sources/pagerduty/__init__.py,sha256=LYoN1dkUg7NCx7g-gdSomTTJhHyB
78
80
  holmes/plugins/sources/prometheus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
81
  holmes/plugins/sources/prometheus/models.py,sha256=9TcDIRLWZQhwjYGfRZFP_2fGweCn4G5xvYrLoXiQZTc,2904
80
82
  holmes/plugins/sources/prometheus/plugin.py,sha256=oBmuOwNM67suy6HmasUnyVOlBq9-mAxLZLlUzRHIggg,5941
81
- holmes/plugins/toolsets/__init__.py,sha256=ydF9jawE6cn8lDpyYhqSCxlvj6eAywLyUoo1bI9wDrE,7589
83
+ holmes/plugins/toolsets/__init__.py,sha256=j0gZgSU5CTSWLE87I5f0zUsHw6vh0uZl0BALEMy-wXU,7738
82
84
  holmes/plugins/toolsets/aks-node-health.yaml,sha256=37Dvk4D0ez1GQlt91MQkI0pZ5RLtUEFAOxDXDCVzb-g,5995
83
85
  holmes/plugins/toolsets/aks.yaml,sha256=_XwrMSsghFnCqlbsZvVfwF3qgQFnxi47AC5Oavi2YC0,9532
84
86
  holmes/plugins/toolsets/argocd.yaml,sha256=lbRIooJIkpumNdRgoDRHTjNb9PvFTfjQcT0iWU2x8mg,3932
85
87
  holmes/plugins/toolsets/atlas_mongodb/instructions.jinja2,sha256=iyft4EwvYcImI_YrMte8_BTJZXGV6i0k84g3oKXR23k,988
86
- holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py,sha256=1FlArSlvS6XobEr5A-4J_VNwCIbmB4ZwFA9O0l4XRK8,15678
88
+ holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py,sha256=8AdGtsox8huiR5UhKnQRN0cz8uPwNr1AGrtsUzvg7bY,15647
87
89
  holmes/plugins/toolsets/aws.yaml,sha256=AM5MizvfHeGFoCRr6kf3Wcd6y_EAhSDqtZajTFrLVfE,4475
88
90
  holmes/plugins/toolsets/azure_sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
91
  holmes/plugins/toolsets/azure_sql/apis/alert_monitoring_api.py,sha256=DSrKzzE6lofynViYr0SGaQrWjePpzbfdt3DcplbFGek,26397
@@ -93,7 +95,7 @@ holmes/plugins/toolsets/azure_sql/apis/connection_monitoring_api.py,sha256=10k5K
93
95
  holmes/plugins/toolsets/azure_sql/apis/storage_analysis_api.py,sha256=sbz8b2IeGqwosA34ddbqnXbD_iPYKuAMyZrV0-__O9g,13835
94
96
  holmes/plugins/toolsets/azure_sql/azure_base_toolset.py,sha256=8eQPsFBPTCf_GMpbjfzzN3u-rGUXiElTD06RWCe7uso,2163
95
97
  holmes/plugins/toolsets/azure_sql/azure_sql_instructions.jinja2,sha256=GvuxActaoJXA__4k72en7I44jEv_ye0MevSmlHfnzxA,6557
96
- 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
97
99
  holmes/plugins/toolsets/azure_sql/install.md,sha256=eBhdG-OG9HhbrEGvI31aAHRPWwBQne6H95mvBROqZ_s,1585
98
100
  holmes/plugins/toolsets/azure_sql/tools/__init__.py,sha256=lEYFZ5X0mHdqwmi6XXTlM1qA7sBYsuQwVCXmluo-L34,25
99
101
  holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py,sha256=f_3TPbAjMDNAjqUr6BkoNzbMn4wvG_gQS-6HH3bC4AY,13385
@@ -169,7 +171,7 @@ holmes/plugins/toolsets/git.py,sha256=eUpQRolp6CEqUS9nMqCJcL-th0m1c8F4oYdhMv_qcG
169
171
  holmes/plugins/toolsets/grafana/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
172
  holmes/plugins/toolsets/grafana/base_grafana_toolset.py,sha256=AjvbS4txSo97YqeeFlXUnu95oPFt8rB-CD1Ccf92a04,1760
171
173
  holmes/plugins/toolsets/grafana/common.py,sha256=yYy6knRNUYQmZvgII-Cte9RQJNY8Sj7QlbHB0aCNFYU,2459
172
- holmes/plugins/toolsets/grafana/grafana_api.py,sha256=nq7KWoUAfFxp1-3VqKadPNKbTifLTgKUAZOFUH5QWUY,1665
174
+ holmes/plugins/toolsets/grafana/grafana_api.py,sha256=Hw6yTRyPC4pGIzV4paXYblY93iDrLjsHGxsONaq9gPU,1665
173
175
  holmes/plugins/toolsets/grafana/grafana_tempo_api.py,sha256=C8XEZzIKzeh9pG-DBQoMW4Qi2Kh3ZoI4TXVGUx2CxUc,14688
174
176
  holmes/plugins/toolsets/grafana/loki_api.py,sha256=f7oTzfhJ1LojsPoAfsKt32ADWffLEywBJQWG9eyfb7I,2529
175
177
  holmes/plugins/toolsets/grafana/toolset_grafana.py,sha256=M10S7CeOsLaSCZqQysjT4vviG7nUPc95QzWCTtPBXXE,4930
@@ -181,7 +183,7 @@ holmes/plugins/toolsets/helm.yaml,sha256=-IPDChKMHcxGbzA0z9GKczRshL-mD24cHpBizfN
181
183
  holmes/plugins/toolsets/internet/internet.py,sha256=qeV6M9302QWacFcr7bOfsZUc84v9MnlTEF_76oUOSNA,7787
182
184
  holmes/plugins/toolsets/internet/notion.py,sha256=ELDtsP8kxdU8rExEL8hq1yV5DEeWDNOljHZEwjnumJc,4795
183
185
  holmes/plugins/toolsets/investigator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
- holmes/plugins/toolsets/investigator/core_investigation.py,sha256=NqNlPjWGyb3A_bw5JV-ePhWOdJUmAIO4IYwa_WsygJM,5213
186
+ holmes/plugins/toolsets/investigator/core_investigation.py,sha256=FQmQT6AkE0-oq8Alo7GfCx_tPJo0Sby1_nOlcUW9JGU,5389
185
187
  holmes/plugins/toolsets/investigator/investigator_instructions.jinja2,sha256=C6y6OaJI2dQSLSw7Zq9-D-sWmL5K_40zRItvkzVAdH4,13967
186
188
  holmes/plugins/toolsets/investigator/model.py,sha256=6AE9Iy05GaX3gC9ChTtZQOFGjSUsas_pB9_YyDaJXP0,342
187
189
  holmes/plugins/toolsets/kafka.py,sha256=kO_CKzdXG__6QmiwaGumZgPkdZbft0f1DpqhNV8ogs8,24774
@@ -199,24 +201,27 @@ holmes/plugins/toolsets/newrelic/newrelic.py,sha256=PCV-rN2w8gxYvo3Nq5Fauoq967ds
199
201
  holmes/plugins/toolsets/opensearch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
202
  holmes/plugins/toolsets/opensearch/opensearch.py,sha256=VVyEJnECRfhwNUQqilugi9t0tPymyp7hRFwYQSFDg2E,8629
201
203
  holmes/plugins/toolsets/opensearch/opensearch_logs.py,sha256=_j-JAhLWtxhBPafCveympxtxQ2EalsqKW6jLfaXHG94,5929
204
+ holmes/plugins/toolsets/opensearch/opensearch_ppl_query_docs.jinja2,sha256=D1Xl_tFfZ91XvzRqdUjsrH0vQjs95Ddn_EPwMcwlzcs,56327
205
+ holmes/plugins/toolsets/opensearch/opensearch_query_assist.py,sha256=lt27E6Ey7EQ34YejSOrUWYlHnWTnqdgm7wHMGVVjZUo,2721
206
+ holmes/plugins/toolsets/opensearch/opensearch_query_assist_instructions.jinja2,sha256=Qoqb8wFqj0WBukA_uhA6l-2bFs06PqYFDESQCN_uWZQ,6699
202
207
  holmes/plugins/toolsets/opensearch/opensearch_traces.py,sha256=Xd_toAzZikdUrInZG8_oBQ0gI-QCvYrf0w2ZciFC1kU,8869
203
208
  holmes/plugins/toolsets/opensearch/opensearch_traces_instructions.jinja2,sha256=Xn8AW4XCMYV1VkBbF8nNB9fUpKQ1Vbm88iFczj-LQXo,1035
204
209
  holmes/plugins/toolsets/opensearch/opensearch_utils.py,sha256=mh9Wp22tOdJYmA9IaFS7tD3aEENljyeuPOsF-lEe5C0,5097
205
- holmes/plugins/toolsets/prometheus/prometheus.py,sha256=veoBZRy0ftfNeXUUNfZi8v1B_JsNNXMFucXd-01vQVs,67747
210
+ holmes/plugins/toolsets/prometheus/prometheus.py,sha256=Ip18XzSxqT0lPCQ2jnZ5MXUQoodOZdCak6KZI_IyqnM,67743
206
211
  holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2,sha256=taf5C-N9rdp1A7S__hETefcm2OaYHJLjs1ZbuqIsGtE,6383
207
212
  holmes/plugins/toolsets/prometheus/utils.py,sha256=ZenD354dP0sRmm0R-QBuAq1jyn40GjYf4wx15bXIYRc,775
208
213
  holmes/plugins/toolsets/rabbitmq/api.py,sha256=-BtqF7hQWtl_OamnQ521vYHhR8E2n2wcPNYxfI9r4kQ,14307
209
214
  holmes/plugins/toolsets/rabbitmq/rabbitmq_instructions.jinja2,sha256=qetmtJUMkx9LIihr2fSJ2EV9h2J-b-ZdUAvMtopXZYY,3105
210
215
  holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py,sha256=k1Sq0Iw8f4ygLVdMDSWMXEGqLX5Jq98hTDcAlsjrv6A,9286
211
216
  holmes/plugins/toolsets/robusta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
- holmes/plugins/toolsets/robusta/robusta.py,sha256=jRNxoIUoJkvCTZZnKpFFhLA3ip0l1c3JKc9J-lOIlgw,8941
213
- holmes/plugins/toolsets/robusta/robusta_instructions.jinja2,sha256=E3UxlbyoNx96Fsk6d1laBTrnca1nLreWGMWnGPD2KbI,2060
217
+ holmes/plugins/toolsets/robusta/robusta.py,sha256=7q9zcW2k0_6JYYFnjerQobf6CWvwv95VeQ2MXbPChV4,10269
218
+ holmes/plugins/toolsets/robusta/robusta_instructions.jinja2,sha256=EZd3jiiiipqVjkc9Ma-6aBGvn4Opa-HY-k3kv4jYPpo,2272
214
219
  holmes/plugins/toolsets/runbook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
215
220
  holmes/plugins/toolsets/runbook/runbook_fetcher.py,sha256=0WN_-T55M5CASGGf9uyUclhALazF8m7xYLk5-kKcHf0,10271
216
- holmes/plugins/toolsets/service_discovery.py,sha256=QVrCCVcTE7APqyr0C44MGmJyCW9Ft-Ac-Wr4XfFBfjA,3268
221
+ holmes/plugins/toolsets/service_discovery.py,sha256=HqENA92SyN7Z_Kd8OZVfw-S9PwdYhn6HDFUAo1-fosw,3268
217
222
  holmes/plugins/toolsets/servicenow/install.md,sha256=UeL069Qd2e4wC3kmc54wk62AoSpyeizKWV6NB1jUYVM,1217
218
223
  holmes/plugins/toolsets/servicenow/instructions.jinja2,sha256=koA2vJ1tOkGi2T5aGjmk9oTZPrt7WdoMSuVyxfO5-k4,491
219
- holmes/plugins/toolsets/servicenow/servicenow.py,sha256=Cb3gcrnaj-GEjoTPQJd4Tb18KwJ8hyLvHekjgs8POs8,8560
224
+ holmes/plugins/toolsets/servicenow/servicenow.py,sha256=Y95lWJugbBmz6eCjwBibMTkYMvHYc9OP_uAp1YwqYYA,8529
220
225
  holmes/plugins/toolsets/slab.yaml,sha256=1Pz0Rzs0B6-TnJiiN2w8qJ9E_bh2haQn0mfhTszaZE0,677
221
226
  holmes/plugins/toolsets/utils.py,sha256=EZqPEBJcnMZliWMiN82XOQstr_NwanEqnzsd6incEFk,6891
222
227
  holmes/plugins/utils.py,sha256=Wn_UxZMB4V2_UiJDNy0pifGnIGS_zUwRhUlmttCywnY,372
@@ -240,11 +245,11 @@ holmes/utils/llms.py,sha256=YLqq54I84wW7Kp7Z7CPVTxAFPb-Sq6xkdmVGzVf60jI,629
240
245
  holmes/utils/markdown_utils.py,sha256=_yDc_IRB5zkj9THUlZ6nzir44VfirTjPccC_DrFrBkc,1507
241
246
  holmes/utils/pydantic_utils.py,sha256=g0e0jLTa8Je8JKrhEP4N5sMxj0_hhPOqFZr0Vpd67sg,1649
242
247
  holmes/utils/sentry_helper.py,sha256=BPkyMs7Yo_0b7QLMmAQ3mKZyXTmxkgVRjr3kikr5ZX8,1328
243
- holmes/utils/stream.py,sha256=B0PigMm2_KBwFKeVu0IxxR07gR65Eq3mJ5FntdVTNTo,3894
248
+ holmes/utils/stream.py,sha256=YgwCgXQjlM6gSKCjTU5ZSeHK9q_VMOoL8_-iL5hQhek,4873
244
249
  holmes/utils/tags.py,sha256=SU4EZMBtLlIb7OlHsSpguFaypczRzOcuHYxDSanV3sQ,3364
245
250
  holmes/version.py,sha256=5-3__IY_2hcIC4WQyTqcdyX1QF-e2VfkYKrI4BIrq0Q,5992
246
- holmesgpt-0.14.4a0.dist-info/LICENSE.txt,sha256=RdZMj8VXRQdVslr6PMYMbAEu5pOjOdjDqt3yAmWb9Ds,1072
247
- holmesgpt-0.14.4a0.dist-info/METADATA,sha256=sTDKlYJOK5I5hnc2sTIzsNDsKw_usivdEzdoupLYMH8,16078
248
- holmesgpt-0.14.4a0.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
249
- holmesgpt-0.14.4a0.dist-info/entry_points.txt,sha256=JdzEyZhpaYr7Boo4uy4UZgzY1VsAEbzMgGmHZtx9KFY,42
250
- holmesgpt-0.14.4a0.dist-info/RECORD,,
251
+ holmesgpt-0.16.0.dist-info/LICENSE.txt,sha256=RdZMj8VXRQdVslr6PMYMbAEu5pOjOdjDqt3yAmWb9Ds,1072
252
+ holmesgpt-0.16.0.dist-info/METADATA,sha256=4a5VtcJYhIgvRGLd9WOa1oaqUzpkJoOTb5D58NOlCD8,16259
253
+ holmesgpt-0.16.0.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
254
+ holmesgpt-0.16.0.dist-info/entry_points.txt,sha256=JdzEyZhpaYr7Boo4uy4UZgzY1VsAEbzMgGmHZtx9KFY,42
255
+ holmesgpt-0.16.0.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