edirectory_monitor_recordmanager.py 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  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 RecordManager"""
  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_recordmanager_cachestatisticscachefaultLooks() -> Dictionary:
  23. return Dictionary(
  24. title=Title("CacheStatistics CacheFaultLooks"),
  25. elements={
  26. "Cachefaultlooks_Blockcache": DictElement(
  27. required=False,
  28. parameter_form=SimpleLevels[int](
  29. title=Title("Blockcache"),
  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. "Cachefaultlooks_Entrycache": DictElement(
  37. required=False,
  38. parameter_form=SimpleLevels[int](
  39. title=Title("Entrycache"),
  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. "Cachefaultlooks_Total": DictElement(
  47. required=False,
  48. parameter_form=SimpleLevels[int](
  49. title=Title("Total"),
  50. level_direction=LevelDirection.UPPER,
  51. form_spec_template=Integer(),
  52. migrate=migrate_to_integer_simple_levels,
  53. prefill_fixed_levels=InputHint(value=(0, 5)),
  54. )
  55. ),
  56. }
  57. )
  58. def _vaulespec_edirectory_monitor_recordmanager_cachestatisticscachefaults() -> Dictionary:
  59. return Dictionary(
  60. title=Title("CacheStatistics CacheFaults"),
  61. elements={
  62. "Cachefaults_Blockcache": DictElement(
  63. required=False,
  64. parameter_form=SimpleLevels[int](
  65. title=Title("Blockcache"),
  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. "Cachefaults_Entrycache": DictElement(
  73. required=False,
  74. parameter_form=SimpleLevels[int](
  75. title=Title("Entrycache"),
  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. "Cachefaults_Total": DictElement(
  83. required=False,
  84. parameter_form=SimpleLevels[int](
  85. title=Title("Total"),
  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. }
  93. )
  94. def _vaulespec_edirectory_monitor_recordmanager_cachestatisticscurrentsize() -> Dictionary:
  95. return Dictionary(
  96. title=Title("CacheStatistics CurrentSize"),
  97. elements={
  98. "Currentsize_Blockcachesize": DictElement(
  99. required=False,
  100. parameter_form=SimpleLevels[int](
  101. title=Title("Blockcache Size"),
  102. level_direction=LevelDirection.UPPER,
  103. form_spec_template=Integer(),
  104. migrate=migrate_to_integer_simple_levels,
  105. prefill_fixed_levels=InputHint(value=(0, 5)),
  106. )
  107. ),
  108. "Currentsize_Entrycachesize": DictElement(
  109. required=False,
  110. parameter_form=SimpleLevels[int](
  111. title=Title("Entrycache Size"),
  112. level_direction=LevelDirection.UPPER,
  113. form_spec_template=Integer(),
  114. migrate=migrate_to_integer_simple_levels,
  115. prefill_fixed_levels=InputHint(value=(0, 5)),
  116. )
  117. ),
  118. "Currentsize_Totalsize": DictElement(
  119. required=False,
  120. parameter_form=SimpleLevels[int](
  121. title=Title("Totalsize"),
  122. level_direction=LevelDirection.UPPER,
  123. form_spec_template=Integer(),
  124. migrate=migrate_to_integer_simple_levels,
  125. prefill_fixed_levels=InputHint(value=(0, 5)),
  126. )
  127. ),
  128. }
  129. )
  130. def _vaulespec_edirectory_monitor_recordmanager_size() -> Dictionary:
  131. return Dictionary(
  132. title=Title("RecordManager Size"),
  133. elements={
  134. "Size_CurrentTransactionID": DictElement(
  135. required=False,
  136. parameter_form=SimpleLevels[int](
  137. title=Title("Currrent Transaction ID"),
  138. level_direction=LevelDirection.UPPER,
  139. form_spec_template=Integer(),
  140. migrate=migrate_to_integer_simple_levels,
  141. prefill_fixed_levels=InputHint(value=(3650715238, 4080211148)),
  142. )
  143. ),
  144. }
  145. )
  146. def _valuespec_edirectory_monitor_recordmanager() -> Dictionary:
  147. return Dictionary(
  148. title=Title("Recordmanager Service Parameters"),
  149. elements={
  150. "cachestatistics_cachefaultLooks": DictElement(
  151. parameter_form=_vaulespec_edirectory_monitor_recordmanager_cachestatisticscachefaultLooks(),
  152. required=False),
  153. "cachestatistics_cachefaults": DictElement(
  154. parameter_form=_vaulespec_edirectory_monitor_recordmanager_cachestatisticscachefaults(),
  155. required=False),
  156. "cachestatistics_currentsize": DictElement(
  157. parameter_form=_vaulespec_edirectory_monitor_recordmanager_cachestatisticscurrentsize(),
  158. required=False),
  159. "size_currentsize": DictElement(
  160. parameter_form=_vaulespec_edirectory_monitor_recordmanager_size(),
  161. required=False),
  162. },
  163. )
  164. def _item_spec() -> String:
  165. return String(
  166. help_text=Help("ServiceName")
  167. )
  168. rule_spec_edirectory_monitor_recordmanager_params = CheckParameters(
  169. name="edirectory_monitor_recordmanager",
  170. title=Title("eDirectory Monitor Recordmanager Statistics"),
  171. topic=Topic.APPLICATIONS,
  172. condition=HostAndItemCondition(
  173. item_title=Title("ServiceName"), item_form=_item_spec()
  174. ),
  175. parameter_form=_valuespec_edirectory_monitor_recordmanager,
  176. create_enforced_service=False,
  177. )