1
0

e 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. #!/usr/bin/env python3
  2. # -*- encoding: utf-8; py-indent-offset: 4 -*-
  3. # (c) Michael Honkoop <mhonkoop@comsolve.nl>
  4. # License: GNU General Public License v2
  5. """parameters for eDirectory monitor DHOST"""
  6. from cmk.rulesets.v1 import Title, Help
  7. from cmk.rulesets.v1.form_specs import (
  8. DictElement,
  9. Dictionary,
  10. InputHint,
  11. Integer,
  12. LevelDirection,
  13. migrate_to_integer_simple_levels,
  14. SimpleLevels,
  15. String,
  16. )
  17. from cmk.rulesets.v1.rule_specs import (
  18. CheckParameters,
  19. Topic,
  20. HostAndItemCondition,
  21. )
  22. def _vaulespec_edirectory_monitor_dhost_inboundconnections() -> Dictionary:
  23. return Dictionary(
  24. title=Title("DHOST Inbound Connections"),
  25. elements={
  26. "InBoundConnectionCount": DictElement(
  27. required=False,
  28. parameter_form=SimpleLevels[int](
  29. title=Title("Inbound Connection Count"),
  30. level_direction=LevelDirection.UPPER,
  31. form_spec_template=Integer(),
  32. migrate=migrate_to_integer_simple_levels,
  33. prefill_fixed_levels=InputHint(value=(0, 5)),
  34. )
  35. ),
  36. "MaxInBoundConnection": DictElement(
  37. required=False,
  38. parameter_form=SimpleLevels[int](
  39. title=Title("Max Inbound Connections"),
  40. level_direction=LevelDirection.UPPER,
  41. form_spec_template=Integer(),
  42. migrate=migrate_to_integer_simple_levels,
  43. prefill_fixed_levels=InputHint(value=(0, 5)),
  44. )
  45. ),
  46. }
  47. )
  48. def _vaulespec_edirectory_monitor_dhost_threadpool() -> Dictionary:
  49. return Dictionary(
  50. title=Title("DHOST Threadpool"),
  51. elements={
  52. "ThreadWaitingQueuePeakItems": DictElement(
  53. required=False,
  54. parameter_form=SimpleLevels[int](
  55. title=Title("ThreadWaitingQueuePeakItems"),
  56. level_direction=LevelDirection.UPPER,
  57. form_spec_template=Integer(),
  58. migrate=migrate_to_integer_simple_levels,
  59. prefill_fixed_levels=InputHint(value=(0, 5)),
  60. )
  61. ),
  62. "ThreadWaitingQueueItems": DictElement(
  63. required=False,
  64. parameter_form=SimpleLevels[int](
  65. title=Title("ThreadWaitingQueueItems"),
  66. level_direction=LevelDirection.UPPER,
  67. form_spec_template=Integer(),
  68. migrate=migrate_to_integer_simple_levels,
  69. prefill_fixed_levels=InputHint(value=(0, 5)),
  70. )
  71. ),
  72. "ThreadMaxWaitTime": DictElement(
  73. required=False,
  74. parameter_form=SimpleLevels[int](
  75. title=Title("Thread Max WaitTime"),
  76. level_direction=LevelDirection.UPPER,
  77. form_spec_template=Integer(),
  78. migrate=migrate_to_integer_simple_levels,
  79. prefill_fixed_levels=InputHint(value=(0, 5)),
  80. )
  81. ),
  82. "ThreadMinWaitTime": DictElement(
  83. required=False,
  84. parameter_form=SimpleLevels[int](
  85. title=Title("Thread Min WaitTime"),
  86. level_direction=LevelDirection.UPPER,
  87. form_spec_template=Integer(),
  88. migrate=migrate_to_integer_simple_levels,
  89. prefill_fixed_levels=InputHint(value=(0, 5)),
  90. )
  91. ),
  92. "ThreadPoolReadyQueueMaxWaitTime": DictElement(
  93. required=False,
  94. parameter_form=SimpleLevels[int](
  95. title=Title("ThreadPool ReadyQueue Max WaitTime"),
  96. level_direction=LevelDirection.UPPER,
  97. form_spec_template=Integer(),
  98. migrate=migrate_to_integer_simple_levels,
  99. prefill_fixed_levels=InputHint(value=(0, 5)),
  100. )
  101. ),
  102. "ThreadPoolReadyQueueItems": DictElement(
  103. required=False,
  104. parameter_form=SimpleLevels[int](
  105. title=Title("ThreadPool ReadyQueue Items"),
  106. level_direction=LevelDirection.UPPER,
  107. form_spec_template=Integer(),
  108. migrate=migrate_to_integer_simple_levels,
  109. prefill_fixed_levels=InputHint(value=(0, 5)),
  110. )
  111. ),
  112. "ThreadPeakWorkers": DictElement(
  113. required=False,
  114. parameter_form=SimpleLevels[int](
  115. title=Title("Thread Peak Workers"),
  116. level_direction=LevelDirection.UPPER,
  117. form_spec_template=Integer(),
  118. migrate=migrate_to_integer_simple_levels,
  119. prefill_fixed_levels=InputHint(value=(0, 5)),
  120. )
  121. ),
  122. "ThreadsWorkers": DictElement(
  123. required=False,
  124. parameter_form=SimpleLevels[int](
  125. title=Title("Threads Workers"),
  126. level_direction=LevelDirection.UPPER,
  127. form_spec_template=Integer(),
  128. migrate=migrate_to_integer_simple_levels,
  129. prefill_fixed_levels=InputHint(value=(0, 5)),
  130. )
  131. ),
  132. "ThreadsIdle": DictElement(
  133. required=False,
  134. parameter_form=SimpleLevels[int](
  135. title=Title("Threads Idle"),
  136. level_direction=LevelDirection.UPPER,
  137. form_spec_template=Integer(),
  138. migrate=migrate_to_integer_simple_levels,
  139. prefill_fixed_levels=InputHint(value=(0, 5)),
  140. )
  141. ),
  142. "ThreadsDied": DictElement(
  143. required=False,
  144. parameter_form=SimpleLevels[int](
  145. title=Title("Threads Died"),
  146. level_direction=LevelDirection.UPPER,
  147. form_spec_template=Integer(),
  148. migrate=migrate_to_integer_simple_levels,
  149. prefill_fixed_levels=InputHint(value=(0, 5)),
  150. )
  151. ),
  152. "ThreadsSpawned": DictElement(
  153. required=False,
  154. parameter_form=SimpleLevels[int](
  155. title=Title("Threads Spawned"),
  156. level_direction=LevelDirection.UPPER,
  157. form_spec_template=Integer(),
  158. migrate=migrate_to_integer_simple_levels,
  159. prefill_fixed_levels=InputHint(value=(0, 5)),
  160. )
  161. ),
  162. }
  163. )
  164. def _valuespec_edirectory_monitor_dhost() -> Dictionary:
  165. return Dictionary(
  166. title=Title("DHOST Service Parameters"),
  167. elements={
  168. "dhost_inboundconnections": DictElement(
  169. parameter_form=_vaulespec_edirectory_monitor_dhost_inboundconnections(),
  170. required=False),
  171. "dhost_threadpool": DictElement(
  172. parameter_form=_vaulespec_edirectory_monitor_dhost_threadpool(),
  173. required=False),
  174. },
  175. )
  176. def _item_spec() -> String:
  177. return String(
  178. help_text=Help("ServiceName")
  179. )
  180. rule_spec_edirectory_monitor_dhost_params = CheckParameters(
  181. name="edirectory_monitor_dhost",
  182. title=Title("eDirectory Monitor DHOST Statistics"),
  183. topic=Topic.APPLICATIONS,
  184. condition=HostAndItemCondition(
  185. item_title=Title("ServiceName"), item_form=_item_spec()
  186. ),
  187. parameter_form=_valuespec_edirectory_monitor_dhost,
  188. create_enforced_service=False,
  189. )