pytbox 0.2.0__tar.gz → 0.2.2__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.

Potentially problematic release.


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

Files changed (84) hide show
  1. {pytbox-0.2.0/src/pytbox.egg-info → pytbox-0.2.2}/PKG-INFO +1 -1
  2. {pytbox-0.2.0 → pytbox-0.2.2}/pyproject.toml +1 -1
  3. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/database/victoriametrics.py +32 -1
  4. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/log/logger.py +7 -6
  5. {pytbox-0.2.0 → pytbox-0.2.2/src/pytbox.egg-info}/PKG-INFO +1 -1
  6. {pytbox-0.2.0 → pytbox-0.2.2}/MANIFEST.in +0 -0
  7. {pytbox-0.2.0 → pytbox-0.2.2}/README.md +0 -0
  8. {pytbox-0.2.0 → pytbox-0.2.2}/setup.cfg +0 -0
  9. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/alert/alert_handler.py +0 -0
  10. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/alert/ping.py +0 -0
  11. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/alicloud/sls.py +0 -0
  12. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/base.py +0 -0
  13. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/build_config.py +0 -0
  14. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/instances.toml +0 -0
  15. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/__init__.py +0 -0
  16. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.cpu/cpu.toml.j2 +0 -0
  17. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.disk/disk.toml.j2 +0 -0
  18. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.diskio/diskio.toml.j2 +0 -0
  19. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.dns_query/dns_query.toml.j2 +0 -0
  20. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.http_response/http_response.toml.j2 +0 -0
  21. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.mem/mem.toml.j2 +0 -0
  22. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.net/net.toml.j2 +0 -0
  23. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.net_response/net_response.toml.j2 +0 -0
  24. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.ping/ping.toml.j2 +0 -0
  25. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.prometheus/prometheus.toml.j2 +0 -0
  26. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.snmp/cisco_interface.toml.j2 +0 -0
  27. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.snmp/cisco_system.toml.j2 +0 -0
  28. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.snmp/h3c_interface.toml.j2 +0 -0
  29. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.snmp/h3c_system.toml.j2 +0 -0
  30. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.snmp/huawei_interface.toml.j2 +0 -0
  31. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.snmp/huawei_system.toml.j2 +0 -0
  32. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.snmp/ruijie_interface.toml.j2 +0 -0
  33. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.snmp/ruijie_system.toml.j2 +0 -0
  34. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/categraf/jinja2/input.vsphere/vsphere.toml.j2 +0 -0
  35. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/__init__.py +0 -0
  36. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/categraf/__init__.py +0 -0
  37. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/categraf/commands.py +0 -0
  38. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/commands/vm.py +0 -0
  39. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/common/__init__.py +0 -0
  40. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/common/options.py +0 -0
  41. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/common/utils.py +0 -0
  42. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/formatters/__init__.py +0 -0
  43. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/formatters/output.py +0 -0
  44. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli/main.py +0 -0
  45. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/cli.py +0 -0
  46. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/common/__init__.py +0 -0
  47. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/database/mongo.py +0 -0
  48. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/dida365.py +0 -0
  49. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/excel.py +0 -0
  50. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/feishu/client.py +0 -0
  51. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/feishu/endpoints.py +0 -0
  52. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/feishu/errors.py +0 -0
  53. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/feishu/helpers.py +0 -0
  54. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/feishu/typing.py +0 -0
  55. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/log/victorialog.py +0 -0
  56. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/mail/alimail.py +0 -0
  57. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/mail/client.py +0 -0
  58. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/mail/mail_detail.py +0 -0
  59. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/network/meraki.py +0 -0
  60. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/onepassword_connect.py +0 -0
  61. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/onepassword_sa.py +0 -0
  62. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/pyjira.py +0 -0
  63. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/utils/cronjob.py +0 -0
  64. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/utils/env.py +0 -0
  65. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/utils/load_config.py +0 -0
  66. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/utils/load_vm_devfile.py +0 -0
  67. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/utils/response.py +0 -0
  68. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/utils/richutils.py +0 -0
  69. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/utils/timeutils.py +0 -0
  70. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/vmware.py +0 -0
  71. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox/win/ad.py +0 -0
  72. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox.egg-info/SOURCES.txt +0 -0
  73. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox.egg-info/dependency_links.txt +0 -0
  74. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox.egg-info/entry_points.txt +0 -0
  75. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox.egg-info/requires.txt +0 -0
  76. {pytbox-0.2.0 → pytbox-0.2.2}/src/pytbox.egg-info/top_level.txt +0 -0
  77. {pytbox-0.2.0 → pytbox-0.2.2}/tests/test_base.py +0 -0
  78. {pytbox-0.2.0 → pytbox-0.2.2}/tests/test_feishu.py +0 -0
  79. {pytbox-0.2.0 → pytbox-0.2.2}/tests/test_load_jsonfile.py +0 -0
  80. {pytbox-0.2.0 → pytbox-0.2.2}/tests/test_logger.py +0 -0
  81. {pytbox-0.2.0 → pytbox-0.2.2}/tests/test_onepassword_connect.py +0 -0
  82. {pytbox-0.2.0 → pytbox-0.2.2}/tests/test_onepassword_sa.py +0 -0
  83. {pytbox-0.2.0 → pytbox-0.2.2}/tests/test_victoriametrics.py +0 -0
  84. {pytbox-0.2.0 → pytbox-0.2.2}/tests/test_vmware.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytbox
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: A collection of Python integrations and utilities (Feishu, Dida365, VictoriaMetrics, ...)
5
5
  Author-email: mingming hou <houm01@foxmail.com>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pytbox"
7
- version = "0.2.0"
7
+ version = "0.2.2"
8
8
  description = "A collection of Python integrations and utilities (Feishu, Dida365, VictoriaMetrics, ...)"
9
9
  authors = [{ name = "mingming hou", email = "houm01@foxmail.com" }]
10
10
  license = "MIT"
@@ -260,7 +260,38 @@ class VictoriaMetrics:
260
260
  return ReturnResponse(code=0, msg=f"查询 {sysname} {ifname} 最近 {last_hours} 小时平均速率为 {round(float(rate), 2)} Mbit/s", data=round(float(rate), 2))
261
261
  except KeyError:
262
262
  return ReturnResponse(code=1, msg=f"查询 {sysname} {ifname} 最近 {last_hours} 小时平均速率为 0 Mbit/s")
263
-
263
+
264
+ def check_interface_max_rate(self,
265
+ direction: Literal['in', 'out'],
266
+ sysname: str,
267
+ ifname:str,
268
+ last_hours: Optional[int] = 24,
269
+ last_minutes: Optional[int] = 5,
270
+ ) -> ReturnResponse:
271
+ '''
272
+ _summary_
273
+
274
+ Args:
275
+ direction (Literal[&#39;in&#39;, &#39;out&#39;]): _description_
276
+ sysname (str): _description_
277
+ ifname (str): _description_
278
+ last_hours (Optional[int], optional): _description_. Defaults to 24.
279
+ last_minutes (Optional[int], optional): _description_. Defaults to 5.
280
+
281
+ Returns:
282
+ ReturnResponse: _description_
283
+ '''
284
+ if direction == 'in':
285
+ query = f'max_over_time(rate(snmp_interface_ifHCInOctets{{sysName="{sysname}", ifName="{ifname}"}}[{last_minutes}m]) * 8 [{last_hours}h:]) / 1e6'
286
+ else:
287
+ query = f'max_over_time(rate(snmp_interface_ifHCOutOctets{{sysName="{sysname}", ifName="{ifname}"}}[{last_minutes}m]) * 8 [{last_hours}h:]) / 1e6'
288
+ r = self.query(query)
289
+ try:
290
+ rate = r.data[0]['value'][1]
291
+ return ReturnResponse(code=0, msg=f"查询 {sysname} {ifname} 最近 {last_hours} 小时最大速率为 {round(float(rate), 2)} Mbit/s", data=round(float(rate), 2))
292
+ except KeyError:
293
+ return ReturnResponse(code=1, msg=f"查询 {sysname} {ifname} 最近 {last_hours} 小时最大速率为 0 Mbit/s")
294
+
264
295
  def check_snmp_port_status(self, sysname: str=None, if_name: str=None, last_minute: int=5, dev_file: str=None) -> ReturnResponse:
265
296
  '''
266
297
  查询端口状态
@@ -152,12 +152,13 @@ class AppLogger:
152
152
  f"**function_name**: {caller_function}"
153
153
  ]
154
154
 
155
- self.dida.task_create(
156
- project_id="65e87d2b3e73517c2cdd9d63",
157
- title=f"自动化脚本告警: {self.app_name}",
158
- content="\n".join(dida_content_list),
159
- tags=['L-程序告警', 't-问题处理']
160
- )
155
+ if self.dida:
156
+ self.dida.task_create(
157
+ project_id="65e87d2b3e73517c2cdd9d63",
158
+ title=f"自动化脚本告警: {self.app_name}",
159
+ content="\n".join(dida_content_list),
160
+ tags=['L-程序告警', 't-问题处理']
161
+ )
161
162
 
162
163
  def critical(self, message: str):
163
164
  """记录严重错误级别日志"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytbox
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: A collection of Python integrations and utilities (Feishu, Dida365, VictoriaMetrics, ...)
5
5
  Author-email: mingming hou <houm01@foxmail.com>
6
6
  License-Expression: MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes