GUI CSS: Removed snapin styles from py modules and added a _snapins.scss for the...
[check_mk.git] / checks / skype
blob4187a7fbb86771532b9d66a6964cfb94ea80d6f4
1 #!/usr/bin/python
2 # -*- encoding: utf-8; py-indent-offset: 4 -*-
3 # +------------------------------------------------------------------+
4 # | ____ _ _ __ __ _ __ |
5 # | / ___| |__ ___ ___| | __ | \/ | |/ / |
6 # | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
7 # | | |___| | | | __/ (__| < | | | | . \ |
8 # | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
9 # | |
10 # | Copyright Mathias Kettner 2016 mk@mathias-kettner.de |
11 # +------------------------------------------------------------------+
13 # This file is part of Check_MK.
14 # The official homepage is at http://mathias-kettner.de/check_mk.
16 # check_mk is free software; you can redistribute it and/or modify it
17 # under the terms of the GNU General Public License as published by
18 # the Free Software Foundation in version 2. check_mk is distributed
19 # in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
20 # out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
21 # PARTICULAR PURPOSE. See the GNU General Public License for more de-
22 # tails. You should have received a copy of the GNU General Public
23 # License along with GNU Make; see the file COPYING. If not, write
24 # to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
25 # Boston, MA 02110-1301 USA.
27 # these defaults were specified by customer
28 factory_settings['skype_mobile_defaultlevels'] = {'requests_processing': {"upper": (10000, 20000)}}
30 factory_settings['skype_xmpp_defaultlevels'] = {
31 'failed_outbound_streams': {
32 "upper": (0.01, 0.02)
34 'failed_inbound_streams': {
35 "upper": (0.01, 0.02)
39 factory_settings['skype_edgeauth_defaultlevels'] = {
40 'bad_requests': {
41 "upper": (20, 40)
45 factory_settings['skype_mediation_server_defaultlevels'] = {
46 'load_call_failure_index': {
47 "upper": (10, 20)
49 'failed_calls_because_of_proxy': {
50 "upper": (10, 20)
52 'failed_calls_because_of_gateway': {
53 "upper": (10, 20)
55 'media_connectivity_failure': {
56 "upper": (1, 2)
60 factory_settings['skype_sip_defaultlevels'] = {
61 'message_processing_time': {
62 "upper": (1.0, 2.0)
63 }, # for edge servers: < 3
64 'incoming_responses_dropped': {
65 "upper": (1.0, 2.0)
67 'incoming_requests_dropped': {
68 "upper": (1.0, 2.0)
70 'queue_latency': {
71 "upper": (0.1, 0.2)
73 'sproc_latency': {
74 "upper": (0.1, 0.2)
76 'throttled_requests': {
77 "upper": (0.2, 0.4)
79 'local_503_responses': {
80 "upper": (0.01, 0.02)
82 'timedout_incoming_messages': {
83 "upper": (2, 4)
85 'holding_time_incoming': {
86 "upper": (6.0, 12.0)
88 'flow_controlled_connections': {
89 "upper": (1, 2)
91 'outgoing_queue_delay': {
92 "upper": (2.0, 4.0)
94 'timedout_sends': {
95 "upper": (0.01, 0.02)
97 'authentication_errors': {
98 "upper": (1, 2)
102 factory_settings['skype_conferencing_defaultlevels'] = {
103 'incomplete_calls': {
104 "upper": (20, 40)
106 'create_conference_latency': {
107 "upper": (5000, 10000)
109 'allocation_latency': {
110 "upper": (5000, 10000)
114 factory_settings["skype_edge_defaultlevels"] = {
115 'authentication_failures': {
116 "upper": (20, 40)
118 'allocate_requests_exceeding': {
119 "upper": (20, 40)
121 'packets_dropped': {
122 "upper": (200, 400)
126 factory_settings["skype_proxy_defaultlevels"] = {
127 'throttled_connections': {
128 "upper": (1, 2)
132 factory_settings['skype_defaultlevels'] = {
133 'failed_search_requests': {
134 "upper": (1.0, 2.0)
136 'failed_locations_requests': {
137 "upper": (1.0, 2.0)
139 'timedout_ad_requests': {
140 "upper": (0.01, 0.02)
142 '5xx_responses': {
143 "upper": (1.0, 2.0)
145 'asp_requests_rejected': {
146 "upper": (1, 2)
148 'failed_file_requests': {
149 "upper": (1.0, 2.0)
151 'join_failures': {
152 "upper": (1, 2)
154 'failed_validate_cert': {
155 "upper": (1, 2)
160 def check_skype(item, params, parsed):
161 # LS:WEB - Address Book Web Query\WEB - Failed search requests/sec
162 # LS:WEB - Location Information Service\WEB - Failed Get Locations Requests/Second
163 # LS:WEB - Distribution List Expansion\WEB - Timed out Active Directory Requests/sec
164 # LS:WEB - UCWA\UCWA - HTTP 5xx Responses/Second
165 # ASP.NET Apps v4.0.30319(*)\Requests Rejected
167 # LS:WEB - Address Book File Download\WEB – Failed File Requests/Second
168 # LS: JoinLauncher – Join Launcher Service Failures\JOINLAUNCHER – Join Failures
169 # LS:WEB – Auth Provider related calls\WEB – Failed validate cert calls to the cert auth provider
171 yield wmi_yield_raw_persec(
172 parsed["LS:WEB - Address Book Web Query"],
173 item,
174 "WEB - Failed search requests/sec",
175 label=" failed search requests/sec",
176 perfvar="failed_search_requests",
177 levels=params['failed_search_requests'])
179 yield wmi_yield_raw_persec(
180 parsed["LS:WEB - Location Information Service"],
181 item,
182 "WEB - Failed Get Locations Requests/Second",
183 label=" failed location requests/sec",
184 perfvar="failed_location_requests",
185 levels=params['failed_locations_requests'])
187 yield wmi_yield_raw_persec(
188 parsed["LS:WEB - Distribution List Expansion"],
189 item,
190 "WEB - Timed out Active Directory Requests/sec",
191 label=" timeout AD requests/sec",
192 perfvar="failed_ad_requests",
193 levels=params['timedout_ad_requests'])
195 yield wmi_yield_raw_persec(
196 parsed["LS:WEB - UCWA"],
197 item,
198 "UCWA - HTTP 5xx Responses/Second",
199 label=" HTTP 5xx/sec",
200 perfvar="http_5xx",
201 levels=params['5xx_responses'])
203 yield wmi_yield_raw_counter(
204 parsed["ASP.NET Apps v4.0.30319"],
205 item,
206 "Requests Rejected",
207 label=" requests rejected",
208 perfvar="asp_requests_rejected",
209 levels=params['asp_requests_rejected'])
211 if "LS:WEB - Address Book File Download" in parsed:
212 yield wmi_yield_raw_persec(
213 parsed["LS:WEB - Address Book File Download"],
214 item,
215 "WEB - Failed File Requests/Second",
216 label=" failed file requests/sec",
217 perfvar="failed_file_requests",
218 levels=params['failed_file_requests'])
220 if "LS:JoinLauncher - Join Launcher Service Failures" in parsed:
221 yield wmi_yield_raw_counter(
222 parsed["LS:JoinLauncher - Join Launcher Service Failures"],
223 item,
224 "JOINLAUNCHER - Join failures",
225 label=" join failures",
226 perfvar="join_failures",
227 levels=params['join_failures'])
229 if "LS:WEB - Auth Provider related calls" in parsed:
230 yield wmi_yield_raw_counter(
231 parsed["LS:WEB - Auth Provider related calls"],
232 item,
233 "WEB - Failed validate cert calls to the cert auth provider",
234 label=" failed cert validations",
235 perfvar="failed_validate_cert_calls",
236 levels=params['failed_validate_cert'])
239 check_info['skype'] = {
240 'inventory_function': lambda table: inventory_wmi_table(
241 table,
242 required_tables=[
243 "LS:WEB - Address Book Web Query", "LS:WEB - Location Information Service",
244 "LS:WEB - Distribution List Expansion", "LS:WEB - UCWA", "ASP.NET Apps v4.0.30319"
246 'check_function': check_skype,
247 'parse_function': lambda info: parse_wmi_table(info, key="instance"),
248 'has_perfdata': True,
249 'service_description': "Skype Web Components",
250 'includes': ['wmi.include'],
251 'group': 'skype',
252 'default_levels_variable': 'skype_defaultlevels'
256 def check_skype_mcu(item, params, parsed):
257 # LS:DATAMCU - MCU Health And Performance\DATAMCU - MCU Health State
258 # LS:AVMCU - MCU Health And Performance\AVMCU - MCU Health State
259 # LS:AsMcu - MCU Health And Performance\ASMCU - MCU Health State
260 # LS:ImMcu - MCU Health And Performance\IMMCU - MCU Health State
262 def health(value, label):
263 # The current health of the MCU. 0 = Normal. 1 = Loaded. 2 = Full. 3 = Unavailable.
264 state = {
265 "0": (0, "Normal"),
266 "1": (1, "Loaded"),
267 "2": (1, "Full"),
268 "3": (2, "Unavailable")
269 }.get(value, (2, "unknown (%s)" % value))
271 return state[0], "%s: %s" % (label, state[1])
273 yield health(
274 parsed["LS:DATAMCU - MCU Health And Performance"].get(0, "DATAMCU - MCU Health State"),
275 "DATAMCU")
277 yield health(parsed["LS:AVMCU - MCU Health And Performance"].get(0, "AVMCU - MCU Health State"),
278 "AVMCU")
280 yield health(parsed["LS:AsMcu - MCU Health And Performance"].get(0, "ASMCU - MCU Health State"),
281 "ASMCU")
283 yield health(parsed["LS:ImMcu - MCU Health And Performance"].get(0, "IMMCU - MCU Health State"),
284 "IMMCU")
287 check_info['skype.mcu'] = {
288 'inventory_function': lambda parsed: inventory_wmi_table(
289 parsed,
290 required_tables=[
291 "LS:DATAMCU - MCU Health And Performance",
292 "LS:AVMCU - MCU Health And Performance",
293 "LS:AsMcu - MCU Health And Performance",
294 "LS:ImMcu - MCU Health And Performance",
296 'check_function': check_skype_mcu,
297 'service_description': "Skype MCU Health",
301 def check_skype_conferencing(item, params, parsed):
302 # LS:CAA - Operations\CAA - Incomplete calls per sec
303 # LS:USrv - Conference Mcu Allocator\USrv - Create Conference Latency (msec)
304 # LS:USrv - Conference Mcu Allocator\USrv – Allocation Latency (msec)
306 yield wmi_yield_raw_persec(
307 parsed["LS:CAA - Operations"],
308 item,
309 "CAA - Incomplete calls per sec",
310 label=" incomplete calls/sec",
311 perfvar="caa_incomplete_calls",
312 levels=params['incomplete_calls'])
314 yield wmi_yield_raw_average(
315 parsed["LS:USrv - Conference Mcu Allocator"],
316 item,
317 "USrv - Create Conference Latency (msec)",
318 label=" create conference latency",
319 perfvar="usrv_create_conference_latency",
320 levels=params['create_conference_latency'])
322 yield wmi_yield_raw_average(
323 parsed["LS:USrv - Conference Mcu Allocator"],
324 item,
325 "USrv - Allocation Latency (msec)",
326 label=" allocation latency",
327 perfvar="usrv_allocation_latency",
328 levels=params['allocation_latency'])
331 check_info['skype.conferencing'] = {
332 'inventory_function': lambda table: inventory_wmi_table(
333 table, required_tables=[
334 "LS:CAA - Operations",
335 "LS:USrv - Conference Mcu Allocator",
337 'check_function': check_skype_conferencing,
338 'parse_function': lambda info: parse_wmi_table(info, key="instance"),
339 'has_perfdata': True,
340 'service_description': "Skype Conferencing",
341 'includes': ['wmi.include'],
342 'group': 'skype_conferencing',
343 'default_levels_variable': 'skype_conferencing_defaultlevels'
347 def check_skype_sip_stack(item, params, parsed):
348 # LS:SIP - Protocol\SIP - Average Incoming Message Processing Time
349 # LS:SIP - Protocol\SIP - Incoming Responses Dropped /Sec
350 # LS:SIP - Protocol\SIP - Incoming Requests Dropped /Sec
351 # LS:USrv - DBStore\USrv - Queue Latency (msec)
352 # LS:USrv - DBStore\USrv - Sproc Latency (msec)
353 # LS:USrv - DBStore\USrv - Throttled requests/sec
355 # LS:SIP - Responses\SIP - Local 503 Responses/sec
356 # LS:SIP - Load Management\SIP - Incoming Messages Timed out
357 # LS:SIP - Load Management\SIP - Average Holding Time For Incoming Messages
358 # LS:SIP - Peers\SIP - Flow-controlled Connections
359 # LS:SIP - Peers\SIP - Average Outgoing Queue Delay
360 # LS:SIP - Peers(*)\SIP-Sends Timed-Out/sec
361 yield wmi_yield_raw_average_timer(
362 parsed["LS:SIP - Protocol"],
363 item,
364 "SIP - Average Incoming Message Processing Time",
365 label=" avg incoming message processing time",
366 perfvar="sip_message_processing_time",
367 levels=params['message_processing_time'])
369 yield wmi_yield_raw_persec(
370 parsed["LS:SIP - Protocol"],
371 item,
372 "SIP - Incoming Responses Dropped /Sec",
373 label=" incoming responses dropped/sec",
374 perfvar="sip_incoming_responses_dropped",
375 levels=params['incoming_responses_dropped'])
377 yield wmi_yield_raw_persec(
378 parsed["LS:SIP - Protocol"],
379 item,
380 "SIP - Incoming Requests Dropped /Sec",
381 label=" incoming requests dropped/sec",
382 perfvar="sip_incoming_requests_dropped",
383 levels=params['incoming_requests_dropped'])
385 yield wmi_yield_raw_average(
386 parsed["LS:USrv - DBStore"],
387 item,
388 "USrv - Queue Latency (msec)",
389 label=" ms queue latency",
390 perfvar="usrv_queue_latency",
391 perfscale=0.001,
392 levels=params['queue_latency'])
394 yield wmi_yield_raw_average(
395 parsed["LS:USrv - DBStore"],
396 item,
397 "USrv - Sproc Latency (msec)",
398 label=" ms sproc latency",
399 perfvar="usrv_sproc_latency",
400 perfscale=0.001,
401 levels=params['sproc_latency'])
403 yield wmi_yield_raw_persec(
404 parsed["LS:USrv - DBStore"],
405 item,
406 "USrv - Throttled requests/sec",
407 label=" throttled requests/sec",
408 perfvar="usrv_throttled_requests",
409 levels=params['throttled_requests'])
411 yield wmi_yield_raw_persec(
412 parsed["LS:SIP - Responses"],
413 item,
414 "SIP - Local 503 Responses /Sec",
415 label=" local 503 responses/sec",
416 perfvar="sip_503_responses",
417 levels=params['local_503_responses'])
419 yield wmi_yield_raw_counter(
420 parsed["LS:SIP - Load Management"],
421 item,
422 "SIP - Incoming Messages Timed out",
423 label=" incoming messages timed out",
424 perfvar="sip_incoming_messages_timed_out",
425 levels=params['timedout_incoming_messages'])
427 yield wmi_yield_raw_average_timer(
428 parsed["LS:SIP - Load Management"],
429 item,
430 "SIP - Average Holding Time For Incoming Messages",
431 label=" avg holding time for incoming messages",
432 perfvar="sip_avg_holding_time_incoming_messages",
433 levels=params['holding_time_incoming'])
435 yield wmi_yield_raw_counter(
436 parsed["LS:SIP - Peers"],
437 item,
438 "SIP - Flow-controlled Connections",
439 label=" flow-controlled connections",
440 perfvar="sip_flow_controlled_connections",
441 levels=params['flow_controlled_connections'])
443 yield wmi_yield_raw_average_timer(
444 parsed["LS:SIP - Peers"],
445 item,
446 "SIP - Average Outgoing Queue Delay",
447 label=" avg outgoing queue delay",
448 perfvar="sip_avg_outgoing_queue_delay",
449 levels=params['outgoing_queue_delay'])
451 yield wmi_yield_raw_persec(
452 parsed["LS:SIP - Peers"],
453 item,
454 "SIP - Sends Timed-Out /Sec",
455 label=" sends timed out/sec",
456 perfvar="sip_sends_timed_out",
457 levels=params['timedout_sends'])
459 if "LS:SIP - Authentication" in parsed:
460 yield wmi_yield_raw_persec(
461 parsed["LS:SIP - Authentication"],
462 item,
463 "SIP - Authentication System Errors /Sec",
464 label=" authentication errors/sec",
465 perfvar="sip_authentication_errors",
466 levels=params['authentication_errors'])
469 check_info['skype.sip_stack'] = {
470 'inventory_function': lambda parsed: inventory_wmi_table(
471 parsed,
472 required_tables=[
473 "LS:SIP - Protocol",
474 "LS:USrv - DBStore",
475 "LS:SIP - Responses",
476 "LS:SIP - Load Management",
477 "LS:SIP - Peers",
479 'check_function': check_skype_sip_stack,
480 'has_perfdata': True,
481 'service_description': "Skype SIP Stack",
482 'group': 'skype_sip',
483 'default_levels_variable': 'skype_sip_defaultlevels'
487 def check_skype_mediation_server(item, params, parsed):
488 # LS:MediationServer - Health Indices\- Load Call Failure Index
489 # LS:MediationServer - Global Counters\- Total failed calls caused by unexpected interaction from the Proxy
490 # LS:MediationServer - Global Per Gateway Counters(*)\- Total failed calls caused by unexpected interaction from a gateway
491 # LS:MediationServer - Media Relay\- Media Connectivity Check Failure
493 yield wmi_yield_raw_counter(
494 parsed["LS:MediationServer - Health Indices"],
495 item,
496 "- Load Call Failure Index",
497 label=" load call failure index",
498 perfvar="mediation_load_call_failure_index",
499 levels=params["load_call_failure_index"])
501 yield wmi_yield_raw_counter(
502 parsed["LS:MediationServer - Global Counters"],
503 item,
504 "- Total failed calls caused by unexpected interaction from the Proxy",
505 label=" failed calls because of proxy",
506 perfvar="mediation_failed_calls_because_of_proxy",
507 levels=params['failed_calls_because_of_proxy'])
509 yield wmi_yield_raw_counter(
510 parsed["LS:MediationServer - Global Per Gateway Counters"],
511 item,
512 "- Total failed calls caused by unexpected interaction from a gateway",
513 label=" failed calls because of gateway",
514 perfvar="mediation_failed_calls_because_of_gateway",
515 levels=params['failed_calls_because_of_gateway'])
517 yield wmi_yield_raw_counter(
518 parsed["LS:MediationServer - Media Relay"],
519 item,
520 "- Media Connectivity Check Failure",
521 label=" media connectivity check failure",
522 perfvar="mediation_media_connectivity_failure",
523 levels=params['media_connectivity_failure'])
526 check_info['skype.mediation_server'] = {
527 'inventory_function': lambda parsed: inventory_wmi_table(
528 parsed,
529 required_tables=[
530 "LS:MediationServer - Health Indices",
531 "LS:MediationServer - Global Counters",
532 "LS:MediationServer - Global Per Gateway Counters",
533 "LS:MediationServer - Media Relay",
535 'check_function': check_skype_mediation_server,
536 'has_perfdata': True,
537 'service_description': "Skype Mediation Server",
538 'group': 'skype_mediation_server',
539 'default_levels_variable': 'skype_mediation_server_defaultlevels'
543 def check_skype_edge_auth(item, params, parsed):
544 # LS:A/V Auth - Requests\- Bad Requests Received/sec
545 yield wmi_yield_raw_persec(
546 parsed["LS:A/V Auth - Requests"],
547 item,
548 "- Bad Requests Received/sec",
549 label=" bad requests/sec",
550 perfvar="avauth_failed_requests",
551 levels=params['bad_requests'])
554 check_info['skype.edge_auth'] = {
555 'inventory_function': lambda parsed: inventory_wmi_table(
556 parsed, required_tables=["LS:A/V Auth - Requests"]),
557 'check_function': check_skype_edge_auth,
558 'has_perfdata': True,
559 'service_description': "Skype Edge Authentification",
560 'group': 'skype_edgeauth',
561 'default_levels_variable': 'skype_edgeauth_defaultlevels'
565 def check_skype_av_edge(item, params, parsed):
566 # LS:A/V Edge - UDP Counters(*)\A/V Edge - Authentication Failures/sec
567 # LS:A/V Edge - TCP Counters(*)\A/V Edge - Authentication Failures/sec
568 # LS:A/V Edge - UDP Counters(*)\A/V Edge - Allocate Requests Exceeding Port Limit
569 # LS:A/V Edge - TCP Counters(*)\A/V Edge - Allocate Requests Exceeding Port Limit
570 # LS:A/V Edge - UDP Counters(*)\A/V Edge - Packets Dropped/sec
571 # LS:A/V Edge - TCP Counters(*)\A/V Edge - Packets Dropped/sec
572 yield wmi_yield_raw_persec(
573 parsed["LS:A/V Edge - UDP Counters"],
574 item,
575 "A/V Edge - Authentication Failures/sec",
576 label=" UDP auth failures/sec",
577 perfvar="edge_udp_failed_auth",
578 levels=params['authentication_failures'])
580 yield wmi_yield_raw_persec(
581 parsed["LS:A/V Edge - TCP Counters"],
582 item,
583 "A/V Edge - Authentication Failures/sec",
584 label=" TCP auth failures/sec",
585 perfvar="edge_tcp_failed_auth",
586 levels=params['authentication_failures'])
588 yield wmi_yield_raw_persec(
589 parsed["LS:A/V Edge - UDP Counters"],
590 item,
591 "A/V Edge - Allocate Requests Exceeding Port Limit/sec",
592 label=" UDP allocate requests > port limit/sec",
593 perfvar="edge_udp_allocate_requests_exceeding_port_limit",
594 levels=params['allocate_requests_exceeding'])
596 yield wmi_yield_raw_persec(
597 parsed["LS:A/V Edge - TCP Counters"],
598 item,
599 "A/V Edge - Allocate Requests Exceeding Port Limit/sec",
600 label=" TCP allocate requests > port limit/sec",
601 perfvar="edge_tcp_allocate_requests_exceeding_port_limit",
602 levels=params['allocate_requests_exceeding'])
604 yield wmi_yield_raw_persec(
605 parsed["LS:A/V Edge - UDP Counters"],
606 item,
607 "A/V Edge - Packets Dropped/sec",
608 label=" UDP packets dropped/sec",
609 perfvar="edge_udp_packets_dropped",
610 levels=params['packets_dropped'])
612 yield wmi_yield_raw_persec(
613 parsed["LS:A/V Edge - TCP Counters"],
614 item,
615 "A/V Edge - Packets Dropped/sec",
616 label=" TCP packets dropped/sec",
617 perfvar="edge_tcp_packets_dropped",
618 levels=params['packets_dropped'])
621 check_info['skype.edge'] = {
622 'inventory_function': lambda parsed: inventory_wmi_table(
623 parsed, required_tables=["LS:A/V Edge - TCP Counters", "LS:A/V Edge - UDP Counters"]),
624 'check_function': check_skype_av_edge,
625 'has_perfdata': True,
626 'service_description': "Skype AV Edge %s",
627 'group': 'skype_edge',
628 'default_levels_variable': 'skype_edge_defaultlevels'
632 def check_skype_data_proxy(item, params, parsed):
633 # LS:DATAPROXY - Server Connections(*)\DATAPROXY - Current count of server connections that are throttled
634 # LS:DATAPROXY - Server Connections(*)\DATAPROXY - System is throttling
635 yield wmi_yield_raw_counter(
636 parsed["LS:DATAPROXY - Server Connections"],
637 item,
638 "DATAPROXY - Current count of server connections that are throttled",
639 label=" server connections throttled",
640 perfvar="dataproxy_connections_throttled",
641 levels=params['throttled_connections'])
643 throttling = int(parsed["LS:DATAPROXY - Server Connections"].get(
644 0, "DATAPROXY - System is throttling"))
646 if throttling != 0:
647 yield 2, "System is throttling"
650 check_info['skype.data_proxy'] = {
651 'inventory_function': lambda parsed: inventory_wmi_table_instances(
652 parsed, required_tables=["LS:DATAPROXY - Server Connections"]),
653 'check_function': check_skype_data_proxy,
654 'has_perfdata': True,
655 'service_description': "Skype Data Proxy %s",
656 'group': 'skype_proxy',
657 'default_levels_variable': 'skype_proxy_defaultlevels'
661 def check_skype_xmpp_proxy(item, params, parsed):
662 # LS:XmppFederationProxy - Streams\XmppFederationProxy - Failed outbound stream establishes/sec
663 # LS:XmppFederationProxy - Streams\XmppFederationProxy - Failed inbound stream establishes/sec
664 yield wmi_yield_raw_persec(
665 parsed["LS:XmppFederationProxy - Streams"],
666 item,
667 "XmppFederationProxy - Failed outbound stream establishes/sec",
668 label=" failed outbound streams",
669 perfvar="xmpp_failed_outbound_streams",
670 levels=params['failed_outbound_streams'])
672 yield wmi_yield_raw_persec(
673 parsed["LS:XmppFederationProxy - Streams"],
674 item,
675 "XmppFederationProxy - Failed inbound stream establishes/sec",
676 label=" failed inbound streams",
677 perfvar="xmpp_failed_inbound_streams",
678 levels=params['failed_inbound_streams'])
681 check_info['skype.xmpp_proxy'] = {
682 'inventory_function': lambda parsed: inventory_wmi_table(
683 parsed, required_tables=["LS:XmppFederationProxy - Streams"]),
684 'check_function': check_skype_xmpp_proxy,
685 'has_perfdata': True,
686 'service_description': "Skype XMPP Proxy",
687 'group': 'skype_xmpp',
688 'default_levels_variable': 'skype_xmpp_defaultlevels'
692 def check_skype_mobile(item, params, parsed):
693 # LS:WEB - UCWA
694 # LS:WEB - Throttling and Authentication\WEB - Total Requests in Processing
696 for instance, name in [
697 ("AndroidLync", "Android"),
698 ("iPadLync", "iPad"),
699 ("iPhoneLync", "iPhone"),
700 ("LyncForMac", "Mac"),
702 status, infotext, perfdata =\
703 wmi_yield_raw_counter(parsed["LS:WEB - UCWA"], instance,
704 "UCWA - Active Session Count",
705 label=" active",
706 perfvar="ucwa_active_sessions")
707 if status != 3:
708 perfdata = [('%s_%s' % (p[0], name.lower()),) + p[1:] for p in perfdata]
709 yield status, "%s: %s" % (name, infotext), perfdata
711 else:
712 # add a perfcounter with 0 sessions for all missing devices so we can
713 # still properly build a combined graph for active sessions
714 yield 0, "", [("active_sessions_%s" % name.lower(), 0, None, None, None, None)]
716 yield wmi_yield_raw_counter(
717 parsed["LS:WEB - Throttling and Authentication"],
718 item,
719 "WEB - Total Requests In Processing",
720 label=" requested",
721 perfvar="web_requests_processing",
722 levels=params['requests_processing'])
725 check_info['skype.mobile'] = {
726 'inventory_function': lambda parsed: inventory_wmi_table(
727 parsed, required_tables=[
728 "LS:WEB - UCWA",
729 "LS:WEB - Throttling and Authentication",
731 'check_function': check_skype_mobile,
732 'has_perfdata': True,
733 'service_description': "Skype Mobile Sessions",
734 'group': 'skype_mobile',
735 'default_levels_variable': 'skype_mobile_defaultlevels'