@cryptotaxi247 / netdata-1 / commits / 2e8ba1c0c

chore(windows.plugin): format win collectors code (#19019)

Ilya Mashchenko committed Nov 14, 2024 at 22:41 UTC 2e8ba1c0c9518a7aa7032e82431cdf3d54d74824
4 files changed +1347 -1548
src/collectors/windows.plugin/perflib-mssql.c
+598 -740
@@ -147,17 +147,17 @@ static DICTIONARY *mssql_instances = NULL;
147 static void initialize_mssql_objects(struct mssql_instance *p, const char *instance) {
148 char prefix[NETDATA_MAX_INSTANCE_NAME];
149 if (!strcmp(instance, "MSSQLSERVER")) {
150 - strncpyz(prefix, "SQLServer:", sizeof(prefix) -1);
150 + strncpyz(prefix, "SQLServer:", sizeof(prefix) - 1);
151 } else if (!strcmp(instance, "SQLEXPRESS")) {
152 - strncpyz(prefix, "MSSQL$SQLEXPRESS:", sizeof(prefix) -1);
152 + strncpyz(prefix, "MSSQL$SQLEXPRESS:", sizeof(prefix) - 1);
153 } else {
154 - char *express = (!is_sqlexpress) ? "" : "SQLEXPRESS" ;
155 - snprintfz(prefix, sizeof(prefix) -1, "MSSQL$%s:%s:", express, instance);
154 + char *express = (!is_sqlexpress) ? "" : "SQLEXPRESS";
155 + snprintfz(prefix, sizeof(prefix) - 1, "MSSQL$%s:%s:", express, instance);
156 }
157
158 size_t length = strlen(prefix);
159 char name[NETDATA_MAX_INSTANCE_OBJECT];
160 - snprintfz(name, sizeof(name) -1, "%s%s", prefix, "General Statistics");
160 + snprintfz(name, sizeof(name) - 1, "%s%s", prefix, "General Statistics");
161 p->objectName[NETDATA_MSSQL_GENERAL_STATS] = strdup(name);
162
163 strncpyz(&name[length], "SQL Errors", sizeof(name) - length);
@@ -217,7 +217,7 @@ static inline void initialize_mssql_keys(struct mssql_instance *p) {
217 }
218
219 void dict_mssql_insert_locks_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused) {
220 - struct mssql_lock_instance *ptr = value;
220 + struct mssql_lock_instance *ptr = value;
221 ptr->deadLocks.key = "Number of Deadlocks/sec";
222 ptr->lockWait.key = "Lock Waits/sec";
223 }
@@ -240,16 +240,14 @@ void dict_mssql_insert_cb(const DICTIONARY_ITEM *item __maybe_unused, void *valu
240 const char *instance = dictionary_acquired_item_name((DICTIONARY_ITEM *)item);
241
242 if (!p->locks_instances) {
243 - p->locks_instances = dictionary_create_advanced(DICT_OPTION_DONT_OVERWRITE_VALUE |
244 - DICT_OPTION_FIXED_SIZE,
245 - NULL, sizeof(struct mssql_lock_instance));
243 + p->locks_instances = dictionary_create_advanced(
244 + DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct mssql_lock_instance));
245 dictionary_register_insert_callback(p->locks_instances, dict_mssql_insert_locks_cb, NULL);
246 }
247
248 if (!p->databases) {
250 - p->databases = dictionary_create_advanced(DICT_OPTION_DONT_OVERWRITE_VALUE |
251 - DICT_OPTION_FIXED_SIZE,
252 - NULL, sizeof(struct mssql_db_instance));
249 + p->databases = dictionary_create_advanced(
250 + DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct mssql_db_instance));
251 dictionary_register_insert_callback(p->databases, dict_mssql_insert_databases_cb, NULL);
252 }
253
@@ -259,11 +257,8 @@ void dict_mssql_insert_cb(const DICTIONARY_ITEM *item __maybe_unused, void *valu
257
258 static int mssql_fill_dictionary() {
259 HKEY hKey;
262 - LSTATUS ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
263 - "SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL",
264 - 0,
265 - KEY_READ,
266 - &hKey);
260 + LSTATUS ret = RegOpenKeyExA(
261 + HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL", 0, KEY_READ, &hKey);
262 if (ret != ERROR_SUCCESS)
263 return -1;
264
@@ -306,8 +301,8 @@ endMSSQLFillDict:
301 }
302
303 static int initialize(void) {
309 - mssql_instances = dictionary_create_advanced(DICT_OPTION_DONT_OVERWRITE_VALUE |
310 - DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct mssql_instance));
304 + mssql_instances = dictionary_create_advanced(
305 + DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct mssql_instance));
306
307 dictionary_register_insert_callback(mssql_instances, dict_mssql_insert_cb, NULL);
308
@@ -318,8 +313,7 @@ static int initialize(void) {
313 return 0;
314 }
315
321 -static void do_mssql_general_stats(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every)
322 -{
316 +static void do_mssql_general_stats(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every) {
317 char id[RRD_ID_LENGTH_MAX + 1];
318 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_GENERAL_STATS]);
319 if (!pObjectType)
@@ -328,72 +322,61 @@ static void do_mssql_general_stats(PERF_DATA_BLOCK *pDataBlock, struct mssql_ins
322 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLUserConnections)) {
323 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_user_connection", p->instanceID);
324 if (!p->st_user_connections) {
331 - p->st_user_connections = rrdset_create_localhost("mssql"
332 - , id, NULL
333 - , "connections"
334 - , "mssql.instance_user_connection"
335 - , "User connections"
336 - , "connections"
337 - , PLUGIN_WINDOWS_NAME
338 - , "PerflibMSSQL"
339 - , PRIO_MSSQL_USER_CONNECTIONS
340 - , update_every
341 - , RRDSET_TYPE_LINE
342 - );
325 + p->st_user_connections = rrdset_create_localhost(
326 + "mssql",
327 + id,
328 + NULL,
329 + "connections",
330 + "mssql.instance_user_connection",
331 + "User connections",
332 + "connections",
333 + PLUGIN_WINDOWS_NAME,
334 + "PerflibMSSQL",
335 + PRIO_MSSQL_USER_CONNECTIONS,
336 + update_every,
337 + RRDSET_TYPE_LINE);
338
339 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_genstats_user_connections", p->instanceID);
345 - p->rd_user_connections = rrddim_add(p->st_user_connections,
346 - id,
347 - "user",
348 - 1,
349 - 1,
350 - RRD_ALGORITHM_ABSOLUTE);
340 + p->rd_user_connections = rrddim_add(p->st_user_connections, id, "user", 1, 1, RRD_ALGORITHM_ABSOLUTE);
341
342 rrdlabels_add(p->st_user_connections->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
343 }
344
355 - rrddim_set_by_pointer(p->st_user_connections,
356 - p->rd_user_connections,
357 - (collected_number)p->MSSQLUserConnections.current.Data);
345 + rrddim_set_by_pointer(
346 + p->st_user_connections, p->rd_user_connections, (collected_number)p->MSSQLUserConnections.current.Data);
347 rrdset_done(p->st_user_connections);
348 }
349
350 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLBlockedProcesses)) {
351 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_blocked_process", p->instanceID);
352 if (!p->st_process_blocked) {
364 - p->st_process_blocked = rrdset_create_localhost("mssql"
365 - , id, NULL
366 - , "processes"
367 - , "mssql.instance_blocked_processes"
368 - , "Blocked processes"
369 - , "process"
370 - , PLUGIN_WINDOWS_NAME
371 - , "PerflibMSSQL"
372 - , PRIO_MSSQL_BLOCKED_PROCESSES
373 - , update_every
374 - , RRDSET_TYPE_LINE
375 - );
353 + p->st_process_blocked = rrdset_create_localhost(
354 + "mssql",
355 + id,
356 + NULL,
357 + "processes",
358 + "mssql.instance_blocked_processes",
359 + "Blocked processes",
360 + "process",
361 + PLUGIN_WINDOWS_NAME,
362 + "PerflibMSSQL",
363 + PRIO_MSSQL_BLOCKED_PROCESSES,
364 + update_every,
365 + RRDSET_TYPE_LINE);
366
367 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_genstats_blocked_processes", p->instanceID);
378 - p->rd_process_blocked = rrddim_add(p->st_process_blocked,
379 - id,
380 - "blocked",
381 - 1,
382 - 1,
383 - RRD_ALGORITHM_ABSOLUTE);
368 + p->rd_process_blocked = rrddim_add(p->st_process_blocked, id, "blocked", 1, 1, RRD_ALGORITHM_ABSOLUTE);
369
370 rrdlabels_add(p->st_process_blocked->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
371 }
372
388 - rrddim_set_by_pointer(p->st_process_blocked,
389 - p->rd_process_blocked,
390 - (collected_number)p->MSSQLBlockedProcesses.current.Data);
373 + rrddim_set_by_pointer(
374 + p->st_process_blocked, p->rd_process_blocked, (collected_number)p->MSSQLBlockedProcesses.current.Data);
375 rrdset_done(p->st_process_blocked);
376 }
377 }
378
395 -static void do_mssql_sql_statistics(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every)
396 -{
379 +static void do_mssql_sql_statistics(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every) {
380 char id[RRD_ID_LENGTH_MAX + 1];
381 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_SQL_STATS]);
382 if (!pObjectType)
@@ -402,272 +385,250 @@ static void do_mssql_sql_statistics(PERF_DATA_BLOCK *pDataBlock, struct mssql_in
385 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLStatsAutoParameterization)) {
386 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_sqlstats_auto_parameterization_attempts", p->instanceID);
387 if (!p->st_stats_auto_param) {
405 - p->st_stats_auto_param = rrdset_create_localhost("mssql"
406 - , id, NULL
407 - , "sql activity"
408 - , "mssql.instance_sqlstats_auto_parameterization_attempts"
409 - , "Failed auto-parameterization attempts"
410 - , "attempts/s"
411 - , PLUGIN_WINDOWS_NAME
412 - , "PerflibMSSQL"
413 - , PRIO_MSSQL_STATS_AUTO_PARAMETRIZATION
414 - , update_every
415 - , RRDSET_TYPE_LINE
416 - );
417 -
418 - snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_sqlstats_auto_parameterization_attempts", p->instanceID);
419 - p->rd_stats_auto_param = rrddim_add(p->st_stats_auto_param,
420 - id,
421 - "failed",
422 - 1,
423 - 1,
424 - RRD_ALGORITHM_INCREMENTAL);
388 + p->st_stats_auto_param = rrdset_create_localhost(
389 + "mssql",
390 + id,
391 + NULL,
392 + "sql activity",
393 + "mssql.instance_sqlstats_auto_parameterization_attempts",
394 + "Failed auto-parameterization attempts",
395 + "attempts/s",
396 + PLUGIN_WINDOWS_NAME,
397 + "PerflibMSSQL",
398 + PRIO_MSSQL_STATS_AUTO_PARAMETRIZATION,
399 + update_every,
400 + RRDSET_TYPE_LINE);
401 +
402 + snprintfz(
403 + id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_sqlstats_auto_parameterization_attempts", p->instanceID);
404 + p->rd_stats_auto_param = rrddim_add(p->st_stats_auto_param, id, "failed", 1, 1, RRD_ALGORITHM_INCREMENTAL);
405
406 rrdlabels_add(p->st_stats_auto_param->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
407 }
408
429 - rrddim_set_by_pointer(p->st_stats_auto_param,
430 - p->rd_stats_auto_param,
431 - (collected_number)p->MSSQLStatsAutoParameterization.current.Data);
409 + rrddim_set_by_pointer(
410 + p->st_stats_auto_param,
411 + p->rd_stats_auto_param,
412 + (collected_number)p->MSSQLStatsAutoParameterization.current.Data);
413 rrdset_done(p->st_stats_auto_param);
414 }
415
416 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLStatsBatchRequests)) {
417 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_sqlstats_batch_requests", p->instanceID);
418 if (!p->st_stats_batch_request) {
438 - p->st_stats_batch_request = rrdset_create_localhost("mssql"
439 - , id, NULL
440 - , "sql activity"
441 - , "mssql.instance_sqlstats_batch_requests"
442 - , "Total of batches requests"
443 - , "requests/s"
444 - , PLUGIN_WINDOWS_NAME
445 - , "PerflibMSSQL"
446 - , PRIO_MSSQL_STATS_BATCH_REQUEST
447 - , update_every
448 - , RRDSET_TYPE_LINE
449 - );
419 + p->st_stats_batch_request = rrdset_create_localhost(
420 + "mssql",
421 + id,
422 + NULL,
423 + "sql activity",
424 + "mssql.instance_sqlstats_batch_requests",
425 + "Total of batches requests",
426 + "requests/s",
427 + PLUGIN_WINDOWS_NAME,
428 + "PerflibMSSQL",
429 + PRIO_MSSQL_STATS_BATCH_REQUEST,
430 + update_every,
431 + RRDSET_TYPE_LINE);
432
433 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_sqlstats_batch_requests", p->instanceID);
452 - p->rd_stats_batch_request = rrddim_add(p->st_stats_batch_request,
453 - id,
454 - "batch",
455 - 1,
456 - 1,
457 - RRD_ALGORITHM_INCREMENTAL);
434 + p->rd_stats_batch_request =
435 + rrddim_add(p->st_stats_batch_request, id, "batch", 1, 1, RRD_ALGORITHM_INCREMENTAL);
436
437 rrdlabels_add(p->st_stats_batch_request->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
438 }
439
462 - rrddim_set_by_pointer(p->st_stats_batch_request,
463 - p->rd_stats_batch_request,
464 - (collected_number)p->MSSQLStatsBatchRequests.current.Data);
440 + rrddim_set_by_pointer(
441 + p->st_stats_batch_request,
442 + p->rd_stats_batch_request,
443 + (collected_number)p->MSSQLStatsBatchRequests.current.Data);
444 rrdset_done(p->st_stats_batch_request);
445 }
446
447 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLStatSafeAutoParameterization)) {
448 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_sqlstats_safe_auto_parameterization_attempts", p->instanceID);
449 if (!p->st_stats_safe_auto) {
471 - p->st_stats_safe_auto = rrdset_create_localhost("mssql"
472 - , id, NULL
473 - , "sql activity"
474 - , "mssql.instance_sqlstats_safe_auto_parameterization_attempts"
475 - , "Safe auto-parameterization attempts"
476 - , "attempts/s"
477 - , PLUGIN_WINDOWS_NAME
478 - , "PerflibMSSQL"
479 - , PRIO_MSSQL_STATS_SAFE_AUTO_PARAMETRIZATION
480 - , update_every
481 - , RRDSET_TYPE_LINE
482 - );
483 -
484 - snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_sqlstats_safe_auto_parameterization_attempts", p->instanceID);
485 - p->rd_stats_safe_auto = rrddim_add(p->st_stats_safe_auto,
486 - id,
487 - "safe",
488 - 1,
489 - 1,
490 - RRD_ALGORITHM_INCREMENTAL);
450 + p->st_stats_safe_auto = rrdset_create_localhost(
451 + "mssql",
452 + id,
453 + NULL,
454 + "sql activity",
455 + "mssql.instance_sqlstats_safe_auto_parameterization_attempts",
456 + "Safe auto-parameterization attempts",
457 + "attempts/s",
458 + PLUGIN_WINDOWS_NAME,
459 + "PerflibMSSQL",
460 + PRIO_MSSQL_STATS_SAFE_AUTO_PARAMETRIZATION,
461 + update_every,
462 + RRDSET_TYPE_LINE);
463 +
464 + snprintfz(
465 + id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_sqlstats_safe_auto_parameterization_attempts", p->instanceID);
466 + p->rd_stats_safe_auto = rrddim_add(p->st_stats_safe_auto, id, "safe", 1, 1, RRD_ALGORITHM_INCREMENTAL);
467
468 rrdlabels_add(p->st_stats_safe_auto->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
469 }
470
495 - rrddim_set_by_pointer(p->st_stats_safe_auto,
496 - p->rd_stats_safe_auto,
497 - (collected_number)p->MSSQLStatSafeAutoParameterization.current.Data);
471 + rrddim_set_by_pointer(
472 + p->st_stats_safe_auto,
473 + p->rd_stats_safe_auto,
474 + (collected_number)p->MSSQLStatSafeAutoParameterization.current.Data);
475 rrdset_done(p->st_stats_safe_auto);
476 }
477
478 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLCompilations)) {
479 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_sqlstats_sql_compilations", p->instanceID);
480 if (!p->st_stats_compilation) {
504 - p->st_stats_compilation = rrdset_create_localhost("mssql"
505 - , id, NULL
506 - , "sql activity"
507 - , "mssql.instance_sqlstats_sql_compilations"
508 - , "SQL compilations"
509 - , "compilations/s"
510 - , PLUGIN_WINDOWS_NAME
511 - , "PerflibMSSQL"
512 - , PRIO_MSSQL_STATS_COMPILATIONS
513 - , update_every
514 - , RRDSET_TYPE_LINE
515 - );
481 + p->st_stats_compilation = rrdset_create_localhost(
482 + "mssql",
483 + id,
484 + NULL,
485 + "sql activity",
486 + "mssql.instance_sqlstats_sql_compilations",
487 + "SQL compilations",
488 + "compilations/s",
489 + PLUGIN_WINDOWS_NAME,
490 + "PerflibMSSQL",
491 + PRIO_MSSQL_STATS_COMPILATIONS,
492 + update_every,
493 + RRDSET_TYPE_LINE);
494
495 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_sqlstats_sql_compilations", p->instanceID);
518 - p->rd_stats_compilation = rrddim_add(p->st_stats_compilation,
519 - id,
520 - "compilations",
521 - 1,
522 - 1,
523 - RRD_ALGORITHM_INCREMENTAL);
496 + p->rd_stats_compilation =
497 + rrddim_add(p->st_stats_compilation, id, "compilations", 1, 1, RRD_ALGORITHM_INCREMENTAL);
498
499 rrdlabels_add(p->st_stats_compilation->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
500 }
501
528 - rrddim_set_by_pointer(p->st_stats_compilation,
529 - p->rd_stats_compilation,
530 - (collected_number)p->MSSQLCompilations.current.Data);
502 + rrddim_set_by_pointer(
503 + p->st_stats_compilation, p->rd_stats_compilation, (collected_number)p->MSSQLCompilations.current.Data);
504 rrdset_done(p->st_stats_compilation);
505 }
506
507 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLRecompilations)) {
508 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_sqlstats_sql_recompilations", p->instanceID);
509 if (!p->st_stats_recompiles) {
537 - p->st_stats_recompiles = rrdset_create_localhost("mssql"
538 - , id, NULL
539 - , "sql activity"
540 - , "mssql.instance_sqlstats_sql_recompilations"
541 - , "SQL re-compilations"
542 - , "recompiles/"
543 - , PLUGIN_WINDOWS_NAME
544 - , "PerflibMSSQL"
545 - , PRIO_MSSQL_STATS_RECOMPILATIONS
546 - , update_every
547 - , RRDSET_TYPE_LINE
548 - );
510 + p->st_stats_recompiles = rrdset_create_localhost(
511 + "mssql",
512 + id,
513 + NULL,
514 + "sql activity",
515 + "mssql.instance_sqlstats_sql_recompilations",
516 + "SQL re-compilations",
517 + "recompiles/",
518 + PLUGIN_WINDOWS_NAME,
519 + "PerflibMSSQL",
520 + PRIO_MSSQL_STATS_RECOMPILATIONS,
521 + update_every,
522 + RRDSET_TYPE_LINE);
523
524 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_sqlstats_sql_recompilations", p->instanceID);
551 - p->rd_stats_recompiles = rrddim_add(p->st_stats_recompiles,
552 - id,
553 - "recompiles",
554 - 1,
555 - 1,
556 - RRD_ALGORITHM_INCREMENTAL);
525 + p->rd_stats_recompiles =
526 + rrddim_add(p->st_stats_recompiles, id, "recompiles", 1, 1, RRD_ALGORITHM_INCREMENTAL);
527
528 rrdlabels_add(p->st_stats_recompiles->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
529 }
530
561 - rrddim_set_by_pointer(p->st_stats_recompiles,
562 - p->rd_stats_recompiles,
563 - (collected_number)p->MSSQLRecompilations.current.Data);
531 + rrddim_set_by_pointer(
532 + p->st_stats_recompiles, p->rd_stats_recompiles, (collected_number)p->MSSQLRecompilations.current.Data);
533 rrdset_done(p->st_stats_recompiles);
534 }
535 }
536
568 -static void do_mssql_buffer_management(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every)
569 -{
537 +static void do_mssql_buffer_management(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every) {
538 char id[RRD_ID_LENGTH_MAX + 1];
571 - PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_BUFFER_MANAGEMENT]);
539 + PERF_OBJECT_TYPE *pObjectType =
540 + perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_BUFFER_MANAGEMENT]);
541 if (!pObjectType)
542 return;
543
544 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLBufferCacheHits)) {
545 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_cache_hit_ratio", p->instanceID);
546 if (!p->st_buff_cache_hits) {
578 - p->st_buff_cache_hits = rrdset_create_localhost("mssql"
579 - , id, NULL
580 - , "buffer cache"
581 - , "mssql.instance_cache_hit_ratio"
582 - , "Buffer Cache hit ratio"
583 - , "percentage"
584 - , PLUGIN_WINDOWS_NAME
585 - , "PerflibMSSQL"
586 - , PRIO_MSSQL_BUFF_CACHE_HIT_RATIO
587 - , update_every
588 - , RRDSET_TYPE_LINE
589 - );
547 + p->st_buff_cache_hits = rrdset_create_localhost(
548 + "mssql",
549 + id,
550 + NULL,
551 + "buffer cache",
552 + "mssql.instance_cache_hit_ratio",
553 + "Buffer Cache hit ratio",
554 + "percentage",
555 + PLUGIN_WINDOWS_NAME,
556 + "PerflibMSSQL",
557 + PRIO_MSSQL_BUFF_CACHE_HIT_RATIO,
558 + update_every,
559 + RRDSET_TYPE_LINE);
560
561 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_cache_hit_ratio", p->instanceID);
592 - p->rd_buff_cache_hits = rrddim_add(p->st_buff_cache_hits,
593 - id,
594 - "hit_ratio",
595 - 1,
596 - 1,
597 - RRD_ALGORITHM_ABSOLUTE);
562 + p->rd_buff_cache_hits = rrddim_add(p->st_buff_cache_hits, id, "hit_ratio", 1, 1, RRD_ALGORITHM_ABSOLUTE);
563
564 rrdlabels_add(p->st_buff_cache_hits->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
565 }
566
602 - rrddim_set_by_pointer(p->st_buff_cache_hits,
603 - p->rd_buff_cache_hits,
604 - (collected_number)p->MSSQLBufferCacheHits.current.Data);
567 + rrddim_set_by_pointer(
568 + p->st_buff_cache_hits, p->rd_buff_cache_hits, (collected_number)p->MSSQLBufferCacheHits.current.Data);
569 rrdset_done(p->st_buff_cache_hits);
570 }
571
572 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLBufferCheckpointPages)) {
573 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_bufman_checkpoint_pages", p->instanceID);
574 if (!p->st_buff_checkpoint_pages) {
611 - p->st_buff_checkpoint_pages = rrdset_create_localhost("mssql"
612 - , id, NULL
613 - , "buffer cache"
614 - , "mssql.instance_bufman_checkpoint_pages"
615 - , "Flushed pages"
616 - , "pages/s"
617 - , PLUGIN_WINDOWS_NAME
618 - , "PerflibMSSQL"
619 - , PRIO_MSSQL_BUFF_CHECKPOINT_PAGES
620 - , update_every
621 - , RRDSET_TYPE_LINE
622 - );
575 + p->st_buff_checkpoint_pages = rrdset_create_localhost(
576 + "mssql",
577 + id,
578 + NULL,
579 + "buffer cache",
580 + "mssql.instance_bufman_checkpoint_pages",
581 + "Flushed pages",
582 + "pages/s",
583 + PLUGIN_WINDOWS_NAME,
584 + "PerflibMSSQL",
585 + PRIO_MSSQL_BUFF_CHECKPOINT_PAGES,
586 + update_every,
587 + RRDSET_TYPE_LINE);
588
589 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_bufman_checkpoint_pages", p->instanceID);
625 - p->rd_buff_checkpoint_pages = rrddim_add(p->st_buff_checkpoint_pages,
626 - id,
627 - "log",
628 - 1,
629 - 1,
630 - RRD_ALGORITHM_INCREMENTAL);
590 + p->rd_buff_checkpoint_pages =
591 + rrddim_add(p->st_buff_checkpoint_pages, id, "log", 1, 1, RRD_ALGORITHM_INCREMENTAL);
592
593 rrdlabels_add(p->st_buff_checkpoint_pages->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
594 }
595
635 - rrddim_set_by_pointer(p->st_buff_checkpoint_pages,
636 - p->rd_buff_checkpoint_pages,
637 - (collected_number)p->MSSQLBufferCheckpointPages.current.Data);
596 + rrddim_set_by_pointer(
597 + p->st_buff_checkpoint_pages,
598 + p->rd_buff_checkpoint_pages,
599 + (collected_number)p->MSSQLBufferCheckpointPages.current.Data);
600 rrdset_done(p->st_buff_checkpoint_pages);
601 }
602
603 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLBufferPageLifeExpectancy)) {
604 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_bufman_page_life_expectancy", p->instanceID);
605 if (!p->st_buff_cache_page_life_expectancy) {
644 - p->st_buff_cache_page_life_expectancy = rrdset_create_localhost("mssql"
645 - , id, NULL
646 - , "buffer cache"
647 - , "mssql.instance_bufman_page_life_expectancy"
648 - , "Page life expectancy"
649 - , "seconds"
650 - , PLUGIN_WINDOWS_NAME
651 - , "PerflibMSSQL"
652 - , PRIO_MSSQL_BUFF_PAGE_LIFE_EXPECTANCY
653 - , update_every
654 - , RRDSET_TYPE_LINE
655 - );
606 + p->st_buff_cache_page_life_expectancy = rrdset_create_localhost(
607 + "mssql",
608 + id,
609 + NULL,
610 + "buffer cache",
611 + "mssql.instance_bufman_page_life_expectancy",
612 + "Page life expectancy",
613 + "seconds",
614 + PLUGIN_WINDOWS_NAME,
615 + "PerflibMSSQL",
616 + PRIO_MSSQL_BUFF_PAGE_LIFE_EXPECTANCY,
617 + update_every,
618 + RRDSET_TYPE_LINE);
619
620 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_bufman_page_life_expectancy_seconds", p->instanceID);
658 - p->rd_buff_cache_page_life_expectancy = rrddim_add(p->st_buff_cache_page_life_expectancy,
659 - id,
660 - "life_expectancy",
661 - 1,
662 - 1,
663 - RRD_ALGORITHM_ABSOLUTE);
664 -
665 - rrdlabels_add(p->st_buff_cache_page_life_expectancy->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
621 + p->rd_buff_cache_page_life_expectancy =
622 + rrddim_add(p->st_buff_cache_page_life_expectancy, id, "life_expectancy", 1, 1, RRD_ALGORITHM_ABSOLUTE);
623 +
624 + rrdlabels_add(
625 + p->st_buff_cache_page_life_expectancy->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
626 }
627
668 - rrddim_set_by_pointer(p->st_buff_cache_page_life_expectancy,
669 - p->rd_buff_cache_page_life_expectancy,
670 - (collected_number)p->MSSQLBufferPageLifeExpectancy.current.Data);
628 + rrddim_set_by_pointer(
629 + p->st_buff_cache_page_life_expectancy,
630 + p->rd_buff_cache_page_life_expectancy,
631 + (collected_number)p->MSSQLBufferPageLifeExpectancy.current.Data);
632 rrdset_done(p->st_buff_cache_page_life_expectancy);
633 }
634
@@ -675,92 +636,79 @@ static void do_mssql_buffer_management(PERF_DATA_BLOCK *pDataBlock, struct mssql
636 perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLBufferPageWrites)) {
637 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_bufman_iops", p->instanceID);
638 if (!p->st_buff_page_iops) {
678 - p->st_buff_page_iops = rrdset_create_localhost("mssql"
679 - , id, NULL
680 - , "buffer cache"
681 - , "mssql.instance_bufman_iops"
682 - , "Number of pages input and output"
683 - , "pages/s"
684 - , PLUGIN_WINDOWS_NAME
685 - , "PerflibMSSQL"
686 - , PRIO_MSSQL_BUFF_MAN_IOPS
687 - , update_every
688 - , RRDSET_TYPE_LINE
689 - );
639 + p->st_buff_page_iops = rrdset_create_localhost(
640 + "mssql",
641 + id,
642 + NULL,
643 + "buffer cache",
644 + "mssql.instance_bufman_iops",
645 + "Number of pages input and output",
646 + "pages/s",
647 + PLUGIN_WINDOWS_NAME,
648 + "PerflibMSSQL",
649 + PRIO_MSSQL_BUFF_MAN_IOPS,
650 + update_every,
651 + RRDSET_TYPE_LINE);
652
653 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_bufman_page_reads", p->instanceID);
692 - p->rd_buff_page_reads = rrddim_add(p->st_buff_page_iops,
693 - id,
694 - "read",
695 - 1,
696 - 1,
697 - RRD_ALGORITHM_INCREMENTAL);
654 + p->rd_buff_page_reads = rrddim_add(p->st_buff_page_iops, id, "read", 1, 1, RRD_ALGORITHM_INCREMENTAL);
655
656 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_bufman_page_writes", p->instanceID);
700 - p->rd_buff_page_writes = rrddim_add(p->st_buff_page_iops,
701 - id,
702 - "written",
703 - -1,
704 - 1,
705 - RRD_ALGORITHM_INCREMENTAL);
657 + p->rd_buff_page_writes = rrddim_add(p->st_buff_page_iops, id, "written", -1, 1, RRD_ALGORITHM_INCREMENTAL);
658
659 rrdlabels_add(p->st_buff_page_iops->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
660 }
661
710 - rrddim_set_by_pointer(p->st_buff_page_iops,
711 - p->rd_buff_page_reads,
712 - (collected_number)p->MSSQLBufferPageReads.current.Data);
662 + rrddim_set_by_pointer(
663 + p->st_buff_page_iops, p->rd_buff_page_reads, (collected_number)p->MSSQLBufferPageReads.current.Data);
664
714 - rrddim_set_by_pointer(p->st_buff_page_iops,
715 - p->rd_buff_page_writes,
716 - (collected_number)p->MSSQLBufferPageWrites.current.Data);
665 + rrddim_set_by_pointer(
666 + p->st_buff_page_iops, p->rd_buff_page_writes, (collected_number)p->MSSQLBufferPageWrites.current.Data);
667 rrdset_done(p->st_buff_page_iops);
668 }
669 }
670
721 -static void do_mssql_access_methods(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every)
722 -{
671 +static void do_mssql_access_methods(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every) {
672 char id[RRD_ID_LENGTH_MAX + 1];
724 - PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_ACCESS_METHODS]);
673 + PERF_OBJECT_TYPE *pObjectType =
674 + perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_ACCESS_METHODS]);
675 if (!pObjectType)
676 return;
677
678 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLAccessMethodPageSplits)) {
679 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_accessmethods_page_splits", p->instanceID);
680 if (!p->st_access_method_page_splits) {
731 - p->st_access_method_page_splits = rrdset_create_localhost("mssql"
732 - , id, NULL
733 - , "buffer cache"
734 - , "mssql.instance_accessmethods_page_splits"
735 - , "Page splits"
736 - , "splits/s"
737 - , PLUGIN_WINDOWS_NAME
738 - , "PerflibMSSQL"
739 - , PRIO_MSSQL_BUFF_METHODS_PAGE_SPLIT
740 - , update_every
741 - , RRDSET_TYPE_LINE
742 - );
681 + p->st_access_method_page_splits = rrdset_create_localhost(
682 + "mssql",
683 + id,
684 + NULL,
685 + "buffer cache",
686 + "mssql.instance_accessmethods_page_splits",
687 + "Page splits",
688 + "splits/s",
689 + PLUGIN_WINDOWS_NAME,
690 + "PerflibMSSQL",
691 + PRIO_MSSQL_BUFF_METHODS_PAGE_SPLIT,
692 + update_every,
693 + RRDSET_TYPE_LINE);
694
695 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_accessmethods_page_splits", p->instanceID);
745 - p->rd_access_method_page_splits = rrddim_add(p->st_access_method_page_splits,
746 - id,
747 - "page",
748 - 1,
749 - 1,
750 - RRD_ALGORITHM_INCREMENTAL);
751 -
752 - rrdlabels_add(p->st_access_method_page_splits->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
696 + p->rd_access_method_page_splits =
697 + rrddim_add(p->st_access_method_page_splits, id, "page", 1, 1, RRD_ALGORITHM_INCREMENTAL);
698 +
699 + rrdlabels_add(
700 + p->st_access_method_page_splits->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
701 }
702
755 - rrddim_set_by_pointer(p->st_access_method_page_splits,
756 - p->rd_access_method_page_splits,
757 - (collected_number)p->MSSQLAccessMethodPageSplits.current.Data);
703 + rrddim_set_by_pointer(
704 + p->st_access_method_page_splits,
705 + p->rd_access_method_page_splits,
706 + (collected_number)p->MSSQLAccessMethodPageSplits.current.Data);
707 rrdset_done(p->st_access_method_page_splits);
708 }
709 }
710
762 -static void do_mssql_errors(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every)
763 -{
711 +static void do_mssql_errors(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every) {
712 char id[RRD_ID_LENGTH_MAX + 1];
713 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_SQL_ERRORS]);
714 if (!pObjectType)
@@ -769,33 +717,28 @@ static void do_mssql_errors(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *
717 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLSQLErrorsTotal)) {
718 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_sql_errors_total", p->instanceID);
719 if (!p->st_sql_errors) {
772 - p->st_sql_errors = rrdset_create_localhost("mssql"
773 - , id, NULL
774 - , "Errors"
775 - , "mssql.instance_sql_errors"
776 - , "errors"
777 - , "errors/s"
778 - , PLUGIN_WINDOWS_NAME
779 - , "PerflibMSSQL"
780 - , PRIO_MSSQL_SQL_ERRORS
781 - , update_every
782 - , RRDSET_TYPE_LINE
783 - );
720 + p->st_sql_errors = rrdset_create_localhost(
721 + "mssql",
722 + id,
723 + NULL,
724 + "Errors",
725 + "mssql.instance_sql_errors",
726 + "errors",
727 + "errors/s",
728 + PLUGIN_WINDOWS_NAME,
729 + "PerflibMSSQL",
730 + PRIO_MSSQL_SQL_ERRORS,
731 + update_every,
732 + RRDSET_TYPE_LINE);
733
734 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_sql_errors_total", p->instanceID);
786 - p->rd_sql_errors = rrddim_add(p->st_sql_errors,
787 - id,
788 - "errors",
789 - 1,
790 - 1,
791 - RRD_ALGORITHM_INCREMENTAL);
735 + p->rd_sql_errors = rrddim_add(p->st_sql_errors, id, "errors", 1, 1, RRD_ALGORITHM_INCREMENTAL);
736
737 rrdlabels_add(p->st_sql_errors->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
738 }
739
796 - rrddim_set_by_pointer(p->st_sql_errors,
797 - p->rd_sql_errors,
798 - (collected_number)p->MSSQLAccessMethodPageSplits.current.Data);
740 + rrddim_set_by_pointer(
741 + p->st_sql_errors, p->rd_sql_errors, (collected_number)p->MSSQLAccessMethodPageSplits.current.Data);
742 rrdset_done(p->st_sql_errors);
743 }
744 }
@@ -809,101 +752,85 @@ int dict_mssql_locks_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void
752
753 if (!mli->parent->st_lockWait) {
754 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_locks_lock_wait", mli->parent->instanceID);
812 - mli->parent->st_lockWait = rrdset_create_localhost("mssql"
813 - , id, NULL
814 - , "locks"
815 - , "mssql.instance_locks_lock_wait"
816 - , "Lock requests that required the caller to wait."
817 - , "locks/s"
818 - , PLUGIN_WINDOWS_NAME
819 - , "PerflibMSSQL"
820 - , PRIO_MSSQL_LOCKS_WAIT
821 - , *update_every
822 - , RRDSET_TYPE_LINE
823 - );
755 + mli->parent->st_lockWait = rrdset_create_localhost(
756 + "mssql",
757 + id,
758 + NULL,
759 + "locks",
760 + "mssql.instance_locks_lock_wait",
761 + "Lock requests that required the caller to wait.",
762 + "locks/s",
763 + PLUGIN_WINDOWS_NAME,
764 + "PerflibMSSQL",
765 + PRIO_MSSQL_LOCKS_WAIT,
766 + *update_every,
767 + RRDSET_TYPE_LINE);
768
769 rrdlabels_add(mli->parent->st_lockWait->rrdlabels, "mssql_instance", instance, RRDLABEL_SRC_AUTO);
770 }
771
772 if (!mli->rd_lockWait) {
829 - snprintfz(id,
830 - RRD_ID_LENGTH_MAX,
831 - "mssql_instance_%s_resource_%s_locks_lock_wait_seconds",
832 - mli->parent->instanceID,
833 - instance);
834 -
835 - mli->rd_lockWait = rrddim_add(mli->parent->st_lockWait,
836 - id,
837 - instance,
838 - 1,
839 - 1,
840 - RRD_ALGORITHM_INCREMENTAL);
773 + snprintfz(
774 + id,
775 + RRD_ID_LENGTH_MAX,
776 + "mssql_instance_%s_resource_%s_locks_lock_wait_seconds",
777 + mli->parent->instanceID,
778 + instance);
779 +
780 + mli->rd_lockWait = rrddim_add(mli->parent->st_lockWait, id, instance, 1, 1, RRD_ALGORITHM_INCREMENTAL);
781 }
782
843 - rrddim_set_by_pointer(mli->parent->st_lockWait,
844 - mli->rd_lockWait,
845 - (collected_number)mli->lockWait.current.Data);
783 + rrddim_set_by_pointer(mli->parent->st_lockWait, mli->rd_lockWait, (collected_number)mli->lockWait.current.Data);
784
785 if (!mli->parent->st_deadLocks) {
786 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_locks_deadlocks", mli->parent->instanceID);
849 - mli->parent->st_deadLocks = rrdset_create_localhost("mssql"
850 - , id, NULL
851 - , "locks"
852 - , "mssql.instance_locks_deadlocks"
853 - , "Lock requests that resulted in deadlock."
854 - , "locks/s"
855 - , PLUGIN_WINDOWS_NAME
856 - , "PerflibMSSQL"
857 - , PRIO_MSSQL_LOCKS_DEADLOCK
858 - , *update_every
859 - , RRDSET_TYPE_LINE
860 - );
787 + mli->parent->st_deadLocks = rrdset_create_localhost(
788 + "mssql",
789 + id,
790 + NULL,
791 + "locks",
792 + "mssql.instance_locks_deadlocks",
793 + "Lock requests that resulted in deadlock.",
794 + "locks/s",
795 + PLUGIN_WINDOWS_NAME,
796 + "PerflibMSSQL",
797 + PRIO_MSSQL_LOCKS_DEADLOCK,
798 + *update_every,
799 + RRDSET_TYPE_LINE);
800 rrdlabels_add(mli->parent->st_deadLocks->rrdlabels, "mssql_instance", instance, RRDLABEL_SRC_AUTO);
801 }
802
803 if (!mli->rd_deadLocks) {
865 - snprintfz(id,
866 - RRD_ID_LENGTH_MAX,
867 - "mssql_instance_%s_resource_%s_locks_deadlocks",
868 - mli->parent->instanceID,
869 - instance);
870 -
871 - mli->rd_deadLocks = rrddim_add(mli->parent->st_deadLocks,
872 - id,
873 - instance,
874 - 1,
875 - 1,
876 - RRD_ALGORITHM_INCREMENTAL);
804 + snprintfz(
805 + id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_resource_%s_locks_deadlocks", mli->parent->instanceID, instance);
806 +
807 + mli->rd_deadLocks = rrddim_add(mli->parent->st_deadLocks, id, instance, 1, 1, RRD_ALGORITHM_INCREMENTAL);
808 }
809
879 - rrddim_set_by_pointer(mli->parent->st_deadLocks,
880 - mli->rd_deadLocks,
881 - (collected_number)mli->deadLocks.current.Data);
810 + rrddim_set_by_pointer(mli->parent->st_deadLocks, mli->rd_deadLocks, (collected_number)mli->deadLocks.current.Data);
811
812 return 1;
813 }
814
886 -static void do_mssql_locks(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every)
887 -{
815 +static void do_mssql_locks(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every) {
816 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_LOCKS]);
889 - if (!pObjectType) return;
817 + if (!pObjectType)
818 + return;
819
820 PERF_INSTANCE_DEFINITION *pi = NULL;
892 - for(LONG i = 0; i < pObjectType->NumInstances ; i++) {
821 + for (LONG i = 0; i < pObjectType->NumInstances; i++) {
822 pi = perflibForEachInstance(pDataBlock, pObjectType, pi);
894 - if(!pi) break;
823 + if (!pi)
824 + break;
825
896 - if(!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
826 + if (!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
827 strncpyz(windows_shared_buffer, "[unknown]", sizeof(windows_shared_buffer) - 1);
828
899 - if(!strcasecmp(windows_shared_buffer, "_Total"))
829 + if (!strcasecmp(windows_shared_buffer, "_Total"))
830 continue;
831
832 netdata_fix_chart_name(windows_shared_buffer);
903 - struct mssql_lock_instance *mli = dictionary_set(p->locks_instances,
904 - windows_shared_buffer,
905 - NULL,
906 - sizeof(*mli));
833 + struct mssql_lock_instance *mli = dictionary_set(p->locks_instances, windows_shared_buffer, NULL, sizeof(*mli));
834 if (!mli)
835 continue;
836
@@ -920,324 +847,272 @@ static void do_mssql_locks(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p
847 rrdset_done(p->st_deadLocks);
848 }
849
923 -static void mssql_database_backup_restore_chart(struct mssql_db_instance *mli, const char *db, int update_every)
924 -{
850 +static void mssql_database_backup_restore_chart(struct mssql_db_instance *mli, const char *db, int update_every) {
851 char id[RRD_ID_LENGTH_MAX + 1];
852 if (!mli->parent->st_db_backup_restore_operations) {
853 snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_backup_restore_operations", db, mli->parent->instanceID);
928 - mli->parent->st_db_backup_restore_operations = rrdset_create_localhost("mssql",
929 - id,
930 - NULL,
931 - "transactions",
932 - "mssql.database_backup_restore_operations",
933 - "Backup IO per database",
934 - "operations/s",
935 - PLUGIN_WINDOWS_NAME,
936 - "PerflibMSSQL",
937 - PRIO_MSSQL_DATABASE_BACKUP_RESTORE_OPERATIONS,
938 - update_every,
939 - RRDSET_TYPE_LINE);
940 -
941 - rrdlabels_add(mli->parent->st_db_backup_restore_operations->rrdlabels,
942 - "mssql_instance",
943 - mli->parent->instanceID,
944 - RRDLABEL_SRC_AUTO);
945 -
946 - rrdlabels_add(mli->parent->st_db_backup_restore_operations->rrdlabels,
947 - "database",
948 - db,
949 - RRDLABEL_SRC_AUTO);
854 + mli->parent->st_db_backup_restore_operations = rrdset_create_localhost(
855 + "mssql",
856 + id,
857 + NULL,
858 + "transactions",
859 + "mssql.database_backup_restore_operations",
860 + "Backup IO per database",
861 + "operations/s",
862 + PLUGIN_WINDOWS_NAME,
863 + "PerflibMSSQL",
864 + PRIO_MSSQL_DATABASE_BACKUP_RESTORE_OPERATIONS,
865 + update_every,
866 + RRDSET_TYPE_LINE);
867 +
868 + rrdlabels_add(
869 + mli->parent->st_db_backup_restore_operations->rrdlabels,
870 + "mssql_instance",
871 + mli->parent->instanceID,
872 + RRDLABEL_SRC_AUTO);
873 +
874 + rrdlabels_add(mli->parent->st_db_backup_restore_operations->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
875 }
876
877 if (!mli->rd_db_backup_restore_operations) {
953 - snprintfz(id,
954 - RRD_ID_LENGTH_MAX,
955 - "mssql_db_%s_instance_%s_backup_restore_operations",
956 - db,
957 - mli->parent->instanceID);
958 -
959 - mli->rd_db_backup_restore_operations = rrddim_add(mli->parent->st_db_backup_restore_operations, id, db,
960 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
878 + snprintfz(
879 + id, RRD_ID_LENGTH_MAX, "mssql_db_%s_instance_%s_backup_restore_operations", db, mli->parent->instanceID);
880 +
881 + mli->rd_db_backup_restore_operations =
882 + rrddim_add(mli->parent->st_db_backup_restore_operations, id, db, 1, 1, RRD_ALGORITHM_INCREMENTAL);
883 }
884
963 - rrddim_set_by_pointer(mli->parent->st_db_backup_restore_operations,
964 - mli->rd_db_backup_restore_operations,
965 - (collected_number)mli->MSSQLDatabaseBackupRestoreOperations.current.Data);
885 + rrddim_set_by_pointer(
886 + mli->parent->st_db_backup_restore_operations,
887 + mli->rd_db_backup_restore_operations,
888 + (collected_number)mli->MSSQLDatabaseBackupRestoreOperations.current.Data);
889 }
890
968 -static void mssql_database_log_flushes_chart(struct mssql_db_instance *mli, const char *db, int update_every)
969 -{
891 +static void mssql_database_log_flushes_chart(struct mssql_db_instance *mli, const char *db, int update_every) {
892 char id[RRD_ID_LENGTH_MAX + 1];
893 if (!mli->parent->st_db_log_flushes) {
894 snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_log_flushes", db, mli->parent->instanceID);
973 - mli->parent->st_db_log_flushes = rrdset_create_localhost("mssql",
974 - id,
975 - NULL,
976 - "transactions",
977 - "mssql.database_log_flushes",
978 - "Log flushes",
979 - "flushes/s",
980 - PLUGIN_WINDOWS_NAME,
981 - "PerflibMSSQL",
982 - PRIO_MSSQL_DATABASE_LOG_FLUSHES,
983 - update_every,
984 - RRDSET_TYPE_LINE);
985 -
986 - rrdlabels_add(mli->parent->st_db_log_flushes->rrdlabels,
987 - "mssql_instance",
988 - mli->parent->instanceID,
989 - RRDLABEL_SRC_AUTO);
990 -
991 - rrdlabels_add(mli->parent->st_db_log_flushes->rrdlabels,
992 - "database",
993 - db,
994 - RRDLABEL_SRC_AUTO);
895 + mli->parent->st_db_log_flushes = rrdset_create_localhost(
896 + "mssql",
897 + id,
898 + NULL,
899 + "transactions",
900 + "mssql.database_log_flushes",
901 + "Log flushes",
902 + "flushes/s",
903 + PLUGIN_WINDOWS_NAME,
904 + "PerflibMSSQL",
905 + PRIO_MSSQL_DATABASE_LOG_FLUSHES,
906 + update_every,
907 + RRDSET_TYPE_LINE);
908 +
909 + rrdlabels_add(
910 + mli->parent->st_db_log_flushes->rrdlabels, "mssql_instance", mli->parent->instanceID, RRDLABEL_SRC_AUTO);
911 +
912 + rrdlabels_add(mli->parent->st_db_log_flushes->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
913 }
914
915 if (!mli->rd_db_log_flushes) {
998 - snprintfz(id,
999 - RRD_ID_LENGTH_MAX,
1000 - "mssql_db_%s_instance_%s_log_flushes_bytes",
1001 - db,
1002 - mli->parent->instanceID);
1003 -
1004 - mli->rd_db_log_flushes = rrddim_add(mli->parent->st_db_log_flushes, id, db,
1005 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
916 + snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_db_%s_instance_%s_log_flushes_bytes", db, mli->parent->instanceID);
917 +
918 + mli->rd_db_log_flushes = rrddim_add(mli->parent->st_db_log_flushes, id, db, 1, 1, RRD_ALGORITHM_INCREMENTAL);
919 }
920
1008 - rrddim_set_by_pointer(mli->parent->st_db_log_flushes,
1009 - mli->rd_db_log_flushes,
1010 - (collected_number)mli->MSSQLDatabaseLogFlushes.current.Data);
921 + rrddim_set_by_pointer(
922 + mli->parent->st_db_log_flushes,
923 + mli->rd_db_log_flushes,
924 + (collected_number)mli->MSSQLDatabaseLogFlushes.current.Data);
925 }
926
1013 -static void mssql_database_log_flushed_chart(struct mssql_db_instance *mli, const char *db, int update_every)
1014 -{
927 +static void mssql_database_log_flushed_chart(struct mssql_db_instance *mli, const char *db, int update_every) {
928 char id[RRD_ID_LENGTH_MAX + 1];
929 if (!mli->parent->st_db_log_flushed) {
930 snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_log_flushed", db, mli->parent->instanceID);
1018 - mli->parent->st_db_log_flushed = rrdset_create_localhost("mssql",
1019 - id,
1020 - NULL,
1021 - "transactions",
1022 - "mssql.database_log_flushed",
1023 - "Log flushed",
1024 - "bytes/s",
1025 - PLUGIN_WINDOWS_NAME,
1026 - "PerflibMSSQL",
1027 - PRIO_MSSQL_DATABASE_LOG_FLUSHED,
1028 - update_every,
1029 - RRDSET_TYPE_LINE);
1030 -
1031 - rrdlabels_add(mli->parent->st_db_log_flushed->rrdlabels,
1032 - "mssql_instance",
1033 - mli->parent->instanceID,
1034 - RRDLABEL_SRC_AUTO);
1035 -
1036 - rrdlabels_add(mli->parent->st_db_log_flushed->rrdlabels,
1037 - "database",
1038 - db,
1039 - RRDLABEL_SRC_AUTO);
931 + mli->parent->st_db_log_flushed = rrdset_create_localhost(
932 + "mssql",
933 + id,
934 + NULL,
935 + "transactions",
936 + "mssql.database_log_flushed",
937 + "Log flushed",
938 + "bytes/s",
939 + PLUGIN_WINDOWS_NAME,
940 + "PerflibMSSQL",
941 + PRIO_MSSQL_DATABASE_LOG_FLUSHED,
942 + update_every,
943 + RRDSET_TYPE_LINE);
944 +
945 + rrdlabels_add(
946 + mli->parent->st_db_log_flushed->rrdlabels, "mssql_instance", mli->parent->instanceID, RRDLABEL_SRC_AUTO);
947 +
948 + rrdlabels_add(mli->parent->st_db_log_flushed->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
949 }
950
951 if (!mli->rd_db_log_flushed) {
1043 - snprintfz(id,
1044 - RRD_ID_LENGTH_MAX,
1045 - "mssql_db_%s_instance_%s_log_flushed_bytes",
1046 - db,
1047 - mli->parent->instanceID);
1048 -
1049 - mli->rd_db_log_flushed = rrddim_add(mli->parent->st_db_log_flushed, id, db,
1050 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
952 + snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_db_%s_instance_%s_log_flushed_bytes", db, mli->parent->instanceID);
953 +
954 + mli->rd_db_log_flushed = rrddim_add(mli->parent->st_db_log_flushed, id, db, 1, 1, RRD_ALGORITHM_INCREMENTAL);
955 }
956
1053 - rrddim_set_by_pointer(mli->parent->st_db_log_flushed,
1054 - mli->rd_db_log_flushed,
1055 - (collected_number)mli->MSSQLDatabaseLogFlushed.current.Data);
957 + rrddim_set_by_pointer(
958 + mli->parent->st_db_log_flushed,
959 + mli->rd_db_log_flushed,
960 + (collected_number)mli->MSSQLDatabaseLogFlushed.current.Data);
961 }
962
1058 -static void mssql_transactions_chart(struct mssql_db_instance *mli, const char *db, int update_every)
1059 -{
963 +static void mssql_transactions_chart(struct mssql_db_instance *mli, const char *db, int update_every) {
964 char id[RRD_ID_LENGTH_MAX + 1];
965 if (!mli->parent->st_db_transactions) {
966 snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_transactions", db, mli->parent->instanceID);
1063 - mli->parent->st_db_transactions = rrdset_create_localhost("mssql",
1064 - id,
1065 - NULL,
1066 - "transactions",
1067 - "mssql.database_transactions",
1068 - "Transactions",
1069 - "transactions/s",
1070 - PLUGIN_WINDOWS_NAME,
1071 - "PerflibMSSQL",
1072 - PRIO_MSSQL_DATABASE_TRANSACTIONS,
1073 - update_every,
1074 - RRDSET_TYPE_LINE);
1075 -
1076 - rrdlabels_add(mli->parent->st_db_transactions->rrdlabels,
1077 - "mssql_instance",
1078 - mli->parent->instanceID,
1079 - RRDLABEL_SRC_AUTO);
1080 -
1081 - rrdlabels_add(mli->parent->st_db_transactions->rrdlabels,
1082 - "database",
1083 - db,
1084 - RRDLABEL_SRC_AUTO);
967 + mli->parent->st_db_transactions = rrdset_create_localhost(
968 + "mssql",
969 + id,
970 + NULL,
971 + "transactions",
972 + "mssql.database_transactions",
973 + "Transactions",
974 + "transactions/s",
975 + PLUGIN_WINDOWS_NAME,
976 + "PerflibMSSQL",
977 + PRIO_MSSQL_DATABASE_TRANSACTIONS,
978 + update_every,
979 + RRDSET_TYPE_LINE);
980 +
981 + rrdlabels_add(
982 + mli->parent->st_db_transactions->rrdlabels, "mssql_instance", mli->parent->instanceID, RRDLABEL_SRC_AUTO);
983 +
984 + rrdlabels_add(mli->parent->st_db_transactions->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
985 }
986
987 if (!mli->rd_db_transactions) {
1088 - snprintfz(id,
1089 - RRD_ID_LENGTH_MAX,
1090 - "mssql_db_%s_instance_%s_transactions",
1091 - db,
1092 - mli->parent->instanceID);
1093 -
1094 - mli->rd_db_transactions = rrddim_add(mli->parent->st_db_transactions, id, db,
1095 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
988 + snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_db_%s_instance_%s_transactions", db, mli->parent->instanceID);
989 +
990 + mli->rd_db_transactions = rrddim_add(mli->parent->st_db_transactions, id, db, 1, 1, RRD_ALGORITHM_INCREMENTAL);
991 }
992
1098 - rrddim_set_by_pointer(mli->parent->st_db_transactions,
1099 - mli->rd_db_transactions,
1100 - (collected_number)mli->MSSQLDatabaseTransactions.current.Data);
993 + rrddim_set_by_pointer(
994 + mli->parent->st_db_transactions,
995 + mli->rd_db_transactions,
996 + (collected_number)mli->MSSQLDatabaseTransactions.current.Data);
997 }
998
1103 -static void mssql_write_transactions_chart(struct mssql_db_instance *mli, const char *db, int update_every)
1104 -{
999 +static void mssql_write_transactions_chart(struct mssql_db_instance *mli, const char *db, int update_every) {
1000 char id[RRD_ID_LENGTH_MAX + 1];
1001 if (!mli->parent->st_db_write_transactions) {
1002 snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_write_transactions", db, mli->parent->instanceID);
1108 - mli->parent->st_db_write_transactions = rrdset_create_localhost("mssql",
1109 - id,
1110 - NULL,
1111 - "transactions",
1112 - "mssql.database_write_transactions",
1113 - "Write transactions",
1114 - "transactions/s",
1115 - PLUGIN_WINDOWS_NAME,
1116 - "PerflibMSSQL",
1117 - PRIO_MSSQL_DATABASE_WRITE_TRANSACTIONS,
1118 - update_every,
1119 - RRDSET_TYPE_LINE);
1120 -
1121 - rrdlabels_add(mli->parent->st_db_write_transactions->rrdlabels,
1122 - "mssql_instance",
1123 - mli->parent->instanceID,
1124 - RRDLABEL_SRC_AUTO);
1125 -
1126 - rrdlabels_add(mli->parent->st_db_write_transactions->rrdlabels,
1127 - "database",
1128 - db,
1129 - RRDLABEL_SRC_AUTO);
1003 + mli->parent->st_db_write_transactions = rrdset_create_localhost(
1004 + "mssql",
1005 + id,
1006 + NULL,
1007 + "transactions",
1008 + "mssql.database_write_transactions",
1009 + "Write transactions",
1010 + "transactions/s",
1011 + PLUGIN_WINDOWS_NAME,
1012 + "PerflibMSSQL",
1013 + PRIO_MSSQL_DATABASE_WRITE_TRANSACTIONS,
1014 + update_every,
1015 + RRDSET_TYPE_LINE);
1016 +
1017 + rrdlabels_add(
1018 + mli->parent->st_db_write_transactions->rrdlabels,
1019 + "mssql_instance",
1020 + mli->parent->instanceID,
1021 + RRDLABEL_SRC_AUTO);
1022 +
1023 + rrdlabels_add(mli->parent->st_db_write_transactions->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
1024 }
1025
1026 if (!mli->rd_db_write_transactions) {
1133 - snprintfz(id,
1134 - RRD_ID_LENGTH_MAX,
1135 - "mssql_db_%s_instance_%s_write_transactions",
1136 - db,
1137 - mli->parent->instanceID);
1138 -
1139 - mli->rd_db_write_transactions = rrddim_add(mli->parent->st_db_write_transactions, id, db,
1140 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
1027 + snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_db_%s_instance_%s_write_transactions", db, mli->parent->instanceID);
1028 +
1029 + mli->rd_db_write_transactions =
1030 + rrddim_add(mli->parent->st_db_write_transactions, id, db, 1, 1, RRD_ALGORITHM_INCREMENTAL);
1031 }
1032
1143 - rrddim_set_by_pointer(mli->parent->st_db_write_transactions,
1144 - mli->rd_db_write_transactions,
1145 - (collected_number)mli->MSSQLDatabaseWriteTransactions.current.Data);
1033 + rrddim_set_by_pointer(
1034 + mli->parent->st_db_write_transactions,
1035 + mli->rd_db_write_transactions,
1036 + (collected_number)mli->MSSQLDatabaseWriteTransactions.current.Data);
1037 }
1038
1148 -static void mssql_active_transactions_chart(struct mssql_db_instance *mli, const char *db, int update_every)
1149 -{
1039 +static void mssql_active_transactions_chart(struct mssql_db_instance *mli, const char *db, int update_every) {
1040 char id[RRD_ID_LENGTH_MAX + 1];
1041 if (!mli->parent->st_db_active_transactions) {
1042 snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_active_transactions", db, mli->parent->instanceID);
1153 - mli->parent->st_db_active_transactions = rrdset_create_localhost("mssql",
1154 - id,
1155 - NULL,
1156 - "transactions",
1157 - "mssql.database_active_transactions",
1158 - "Active transactions per database",
1159 - "transactions",
1160 - PLUGIN_WINDOWS_NAME,
1161 - "PerflibMSSQL",
1162 - PRIO_MSSQL_DATABASE_ACTIVE_TRANSACTIONS,
1163 - update_every,
1164 - RRDSET_TYPE_LINE);
1165 -
1166 - rrdlabels_add(mli->parent->st_db_active_transactions->rrdlabels,
1167 - "mssql_instance",
1168 - mli->parent->instanceID,
1169 - RRDLABEL_SRC_AUTO);
1170 -
1171 - rrdlabels_add(mli->parent->st_db_active_transactions->rrdlabels,
1172 - "database",
1173 - db,
1174 - RRDLABEL_SRC_AUTO);
1043 + mli->parent->st_db_active_transactions = rrdset_create_localhost(
1044 + "mssql",
1045 + id,
1046 + NULL,
1047 + "transactions",
1048 + "mssql.database_active_transactions",
1049 + "Active transactions per database",
1050 + "transactions",
1051 + PLUGIN_WINDOWS_NAME,
1052 + "PerflibMSSQL",
1053 + PRIO_MSSQL_DATABASE_ACTIVE_TRANSACTIONS,
1054 + update_every,
1055 + RRDSET_TYPE_LINE);
1056 +
1057 + rrdlabels_add(
1058 + mli->parent->st_db_active_transactions->rrdlabels,
1059 + "mssql_instance",
1060 + mli->parent->instanceID,
1061 + RRDLABEL_SRC_AUTO);
1062 +
1063 + rrdlabels_add(mli->parent->st_db_active_transactions->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
1064 }
1065
1066 if (!mli->rd_db_active_transactions) {
1178 - snprintfz(id,
1179 - RRD_ID_LENGTH_MAX,
1180 - "mssql_db_%s_instance_%s_active_transactions",
1181 - db,
1182 - mli->parent->instanceID);
1183 -
1184 - mli->rd_db_active_transactions = rrddim_add(mli->parent->st_db_active_transactions, id, db,
1185 - 1, 1, RRD_ALGORITHM_ABSOLUTE);
1067 + snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_db_%s_instance_%s_active_transactions", db, mli->parent->instanceID);
1068 +
1069 + mli->rd_db_active_transactions =
1070 + rrddim_add(mli->parent->st_db_active_transactions, id, db, 1, 1, RRD_ALGORITHM_ABSOLUTE);
1071 }
1072
1188 - rrddim_set_by_pointer(mli->parent->st_db_active_transactions,
1189 - mli->rd_db_active_transactions,
1190 - (collected_number)mli->MSSQLDatabaseActiveTransactions.current.Data);
1073 + rrddim_set_by_pointer(
1074 + mli->parent->st_db_active_transactions,
1075 + mli->rd_db_active_transactions,
1076 + (collected_number)mli->MSSQLDatabaseActiveTransactions.current.Data);
1077 }
1078
1193 -static void mssql_data_file_size_chart(struct mssql_db_instance *mli, const char *db, int update_every)
1194 -{
1079 +static void mssql_data_file_size_chart(struct mssql_db_instance *mli, const char *db, int update_every) {
1080 char id[RRD_ID_LENGTH_MAX + 1];
1081 if (!mli->parent->st_db_data_file_size) {
1082 snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_data_files_size", db, mli->parent->instanceID);
1198 - mli->parent->st_db_data_file_size = rrdset_create_localhost("mssql",
1199 - id,
1200 - NULL,
1201 - "size",
1202 - "mssql.database_data_files_size",
1203 - "Current database size.",
1204 - "bytes",
1205 - PLUGIN_WINDOWS_NAME,
1206 - "PerflibMSSQL",
1207 - PRIO_MSSQL_DATABASE_DATA_FILE_SIZE,
1208 - update_every,
1209 - RRDSET_TYPE_LINE);
1210 -
1211 - rrdlabels_add(mli->parent->st_db_data_file_size->rrdlabels,
1212 - "mssql_instance",
1213 - mli->parent->instanceID,
1214 - RRDLABEL_SRC_AUTO);
1215 -
1216 - rrdlabels_add(mli->parent->st_db_data_file_size->rrdlabels,
1217 - "database",
1218 - db,
1219 - RRDLABEL_SRC_AUTO);
1083 + mli->parent->st_db_data_file_size = rrdset_create_localhost(
1084 + "mssql",
1085 + id,
1086 + NULL,
1087 + "size",
1088 + "mssql.database_data_files_size",
1089 + "Current database size.",
1090 + "bytes",
1091 + PLUGIN_WINDOWS_NAME,
1092 + "PerflibMSSQL",
1093 + PRIO_MSSQL_DATABASE_DATA_FILE_SIZE,
1094 + update_every,
1095 + RRDSET_TYPE_LINE);
1096 +
1097 + rrdlabels_add(
1098 + mli->parent->st_db_data_file_size->rrdlabels, "mssql_instance", mli->parent->instanceID, RRDLABEL_SRC_AUTO);
1099 +
1100 + rrdlabels_add(mli->parent->st_db_data_file_size->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
1101 }
1102
1103 if (!mli->rd_db_data_file_size) {
1223 - snprintfz(id,
1224 - RRD_ID_LENGTH_MAX,
1225 - "mssql_db_%s_instance_%s_data_files_size_bytes",
1226 - db,
1227 - mli->parent->instanceID);
1228 -
1229 - mli->rd_db_data_file_size = rrddim_add(mli->parent->st_db_data_file_size, id, db,
1230 - 1, 1, RRD_ALGORITHM_ABSOLUTE);
1231 - }
1104 + snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_db_%s_instance_%s_data_files_size_bytes", db, mli->parent->instanceID);
1105
1233 - rrddim_set_by_pointer(mli->parent->st_db_data_file_size,
1234 - mli->rd_db_data_file_size,
1235 - (collected_number)mli->MSSQLDatabaseDataFileSize.current.Data*1024);
1106 + mli->rd_db_data_file_size = rrddim_add(mli->parent->st_db_data_file_size, id, db, 1, 1, RRD_ALGORITHM_ABSOLUTE);
1107 + }
1108
1109 + rrddim_set_by_pointer(
1110 + mli->parent->st_db_data_file_size,
1111 + mli->rd_db_data_file_size,
1112 + (collected_number)mli->MSSQLDatabaseDataFileSize.current.Data * 1024);
1113 }
1114
1239 -int dict_mssql_databases_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused)
1240 -{
1115 +int dict_mssql_databases_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused) {
1116 struct mssql_db_instance *mli = value;
1117 const char *db = dictionary_acquired_item_name((DICTIONARY_ITEM *)item);
1118
@@ -1253,8 +1128,7 @@ int dict_mssql_databases_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, v
1128 mssql_write_transactions_chart,
1129
1130 // Last function pointer must be NULL
1256 - NULL
1257 - };
1131 + NULL};
1132
1133 int i;
1134 for (i = 0; transaction_chart[i]; i++) {
@@ -1264,27 +1138,25 @@ int dict_mssql_databases_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, v
1138 return 1;
1139 }
1140
1267 -static void do_mssql_databases(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every)
1268 -{
1141 +static void do_mssql_databases(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every) {
1142 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_DATABASE]);
1270 - if (!pObjectType) return;
1143 + if (!pObjectType)
1144 + return;
1145
1146 PERF_INSTANCE_DEFINITION *pi = NULL;
1273 - for(LONG i = 0; i < pObjectType->NumInstances ; i++) {
1147 + for (LONG i = 0; i < pObjectType->NumInstances; i++) {
1148 pi = perflibForEachInstance(pDataBlock, pObjectType, pi);
1275 - if(!pi) break;
1149 + if (!pi)
1150 + break;
1151
1277 - if(!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
1152 + if (!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
1153 strncpyz(windows_shared_buffer, "[unknown]", sizeof(windows_shared_buffer) - 1);
1154
1280 - if(!strcasecmp(windows_shared_buffer, "_Total"))
1155 + if (!strcasecmp(windows_shared_buffer, "_Total"))
1156 continue;
1157
1158 netdata_fix_chart_name(windows_shared_buffer);
1284 - struct mssql_db_instance *mdi = dictionary_set(p->databases,
1285 - windows_shared_buffer,
1286 - NULL,
1287 - sizeof(*mdi));
1159 + struct mssql_db_instance *mdi = dictionary_set(p->databases, windows_shared_buffer, NULL, sizeof(*mdi));
1160 if (!mdi)
1161 continue;
1162
@@ -1311,8 +1183,7 @@ static void do_mssql_databases(PERF_DATA_BLOCK *pDataBlock, struct mssql_instanc
1183 rrdset_done(p->st_db_write_transactions);
1184 }
1185
1314 -static void do_mssql_memory_mgr(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every)
1315 -{
1186 +static void do_mssql_memory_mgr(PERF_DATA_BLOCK *pDataBlock, struct mssql_instance *p, int update_every) {
1187 char id[RRD_ID_LENGTH_MAX + 1];
1188 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, p->objectName[NETDATA_MSSQL_MEMORY]);
1189 if (!pObjectType)
@@ -1321,132 +1192,120 @@ static void do_mssql_memory_mgr(PERF_DATA_BLOCK *pDataBlock, struct mssql_instan
1192 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLConnectionMemoryBytes)) {
1193 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_memmgr_connection_memory_bytes", p->instanceID);
1194 if (!p->st_conn_memory) {
1324 - p->st_conn_memory = rrdset_create_localhost("mssql"
1325 - , id, NULL
1326 - , "memory"
1327 - , "mssql.instance_memmgr_connection_memory_bytes"
1328 - , "Amount of dynamic memory to maintain connections"
1329 - , "bytes"
1330 - , PLUGIN_WINDOWS_NAME
1331 - , "PerflibMSSQL"
1332 - , PRIO_MSSQL_MEMMGR_CONNECTION_MEMORY_BYTES
1333 - , update_every
1334 - , RRDSET_TYPE_LINE
1335 - );
1195 + p->st_conn_memory = rrdset_create_localhost(
1196 + "mssql",
1197 + id,
1198 + NULL,
1199 + "memory",
1200 + "mssql.instance_memmgr_connection_memory_bytes",
1201 + "Amount of dynamic memory to maintain connections",
1202 + "bytes",
1203 + PLUGIN_WINDOWS_NAME,
1204 + "PerflibMSSQL",
1205 + PRIO_MSSQL_MEMMGR_CONNECTION_MEMORY_BYTES,
1206 + update_every,
1207 + RRDSET_TYPE_LINE);
1208
1209 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_memmgr_connection_memory_bytes", p->instanceID);
1338 - p->rd_conn_memory = rrddim_add(p->st_conn_memory,
1339 - id,
1340 - "memory",
1341 - 1,
1342 - 1,
1343 - RRD_ALGORITHM_ABSOLUTE);
1210 + p->rd_conn_memory = rrddim_add(p->st_conn_memory, id, "memory", 1, 1, RRD_ALGORITHM_ABSOLUTE);
1211
1212 rrdlabels_add(p->st_conn_memory->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
1213 }
1214
1348 - rrddim_set_by_pointer(p->st_conn_memory,
1349 - p->rd_conn_memory,
1350 - (collected_number)(p->MSSQLConnectionMemoryBytes.current.Data*1024));
1215 + rrddim_set_by_pointer(
1216 + p->st_conn_memory,
1217 + p->rd_conn_memory,
1218 + (collected_number)(p->MSSQLConnectionMemoryBytes.current.Data * 1024));
1219 rrdset_done(p->st_conn_memory);
1220 }
1221
1222 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLExternalBenefitOfMemory)) {
1223 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_memmgr_external_benefit_of_memory", p->instanceID);
1224 if (!p->st_ext_benefit_mem) {
1357 - p->st_ext_benefit_mem = rrdset_create_localhost("mssql"
1358 - , id, NULL
1359 - , "memory"
1360 - , "mssql.instance_memmgr_external_benefit_of_memory"
1361 - , "Performance benefit from adding memory to a specific cache"
1362 - , "bytes"
1363 - , PLUGIN_WINDOWS_NAME
1364 - , "PerflibMSSQL"
1365 - , PRIO_MSSQL_MEMMGR_EXTERNAL_BENEFIT_OF_MEMORY
1366 - , update_every
1367 - , RRDSET_TYPE_LINE
1368 - );
1225 + p->st_ext_benefit_mem = rrdset_create_localhost(
1226 + "mssql",
1227 + id,
1228 + NULL,
1229 + "memory",
1230 + "mssql.instance_memmgr_external_benefit_of_memory",
1231 + "Performance benefit from adding memory to a specific cache",
1232 + "bytes",
1233 + PLUGIN_WINDOWS_NAME,
1234 + "PerflibMSSQL",
1235 + PRIO_MSSQL_MEMMGR_EXTERNAL_BENEFIT_OF_MEMORY,
1236 + update_every,
1237 + RRDSET_TYPE_LINE);
1238
1239 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_memmgr_external_benefit_of_memory", p->instanceID);
1371 - p->rd_ext_benefit_mem = rrddim_add(p->st_ext_benefit_mem,
1372 - id,
1373 - "benefit",
1374 - 1,
1375 - 1,
1376 - RRD_ALGORITHM_INCREMENTAL);
1240 + p->rd_ext_benefit_mem = rrddim_add(p->st_ext_benefit_mem, id, "benefit", 1, 1, RRD_ALGORITHM_INCREMENTAL);
1241
1242 rrdlabels_add(p->st_ext_benefit_mem->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
1243 }
1244
1381 - rrddim_set_by_pointer(p->st_ext_benefit_mem,
1382 - p->rd_ext_benefit_mem,
1383 - (collected_number)p->MSSQLExternalBenefitOfMemory.current.Data);
1245 + rrddim_set_by_pointer(
1246 + p->st_ext_benefit_mem,
1247 + p->rd_ext_benefit_mem,
1248 + (collected_number)p->MSSQLExternalBenefitOfMemory.current.Data);
1249 rrdset_done(p->st_ext_benefit_mem);
1250 }
1251
1252 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLPendingMemoryGrants)) {
1253 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_memmgr_pending_memory_grants", p->instanceID);
1254 if (!p->st_pending_mem_grant) {
1390 - p->st_pending_mem_grant = rrdset_create_localhost("mssql"
1391 - , id, NULL
1392 - , "memory"
1393 - , "mssql.instance_memmgr_pending_memory_grants"
1394 - , "Process waiting for memory grant"
1395 - , "process"
1396 - , PLUGIN_WINDOWS_NAME
1397 - , "PerflibMSSQL"
1398 - , PRIO_MSSQL_MEMMGR_PENDING_MEMORY_GRANTS
1399 - , update_every
1400 - , RRDSET_TYPE_LINE
1401 - );
1255 + p->st_pending_mem_grant = rrdset_create_localhost(
1256 + "mssql",
1257 + id,
1258 + NULL,
1259 + "memory",
1260 + "mssql.instance_memmgr_pending_memory_grants",
1261 + "Process waiting for memory grant",
1262 + "process",
1263 + PLUGIN_WINDOWS_NAME,
1264 + "PerflibMSSQL",
1265 + PRIO_MSSQL_MEMMGR_PENDING_MEMORY_GRANTS,
1266 + update_every,
1267 + RRDSET_TYPE_LINE);
1268
1269 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_memmgr_pending_memory_grants", p->instanceID);
1404 - p->rd_pending_mem_grant = rrddim_add(p->st_pending_mem_grant,
1405 - id,
1406 - "pending",
1407 - 1,
1408 - 1,
1409 - RRD_ALGORITHM_ABSOLUTE);
1270 + p->rd_pending_mem_grant = rrddim_add(p->st_pending_mem_grant, id, "pending", 1, 1, RRD_ALGORITHM_ABSOLUTE);
1271
1272 rrdlabels_add(p->st_pending_mem_grant->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
1273 }
1274
1414 - rrddim_set_by_pointer(p->st_pending_mem_grant,
1415 - p->rd_pending_mem_grant,
1416 - (collected_number)p->MSSQLPendingMemoryGrants.current.Data);
1275 + rrddim_set_by_pointer(
1276 + p->st_pending_mem_grant,
1277 + p->rd_pending_mem_grant,
1278 + (collected_number)p->MSSQLPendingMemoryGrants.current.Data);
1279 rrdset_done(p->st_pending_mem_grant);
1280 }
1281
1282 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->MSSQLTotalServerMemory)) {
1283 snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_memmgr_server_memory", p->instanceID);
1284 if (!p->st_mem_tot_server) {
1423 - p->st_mem_tot_server = rrdset_create_localhost("mssql"
1424 - , id, NULL
1425 - , "memory"
1426 - , "mssql.instance_memmgr_server_memory"
1427 - , "Memory committed"
1428 - , "bytes"
1429 - , PLUGIN_WINDOWS_NAME
1430 - , "PerflibMSSQL"
1431 - , PRIO_MSSQL_MEMMGR_TOTAL_SERVER
1432 - , update_every
1433 - , RRDSET_TYPE_LINE
1434 - );
1285 + p->st_mem_tot_server = rrdset_create_localhost(
1286 + "mssql",
1287 + id,
1288 + NULL,
1289 + "memory",
1290 + "mssql.instance_memmgr_server_memory",
1291 + "Memory committed",
1292 + "bytes",
1293 + PLUGIN_WINDOWS_NAME,
1294 + "PerflibMSSQL",
1295 + PRIO_MSSQL_MEMMGR_TOTAL_SERVER,
1296 + update_every,
1297 + RRDSET_TYPE_LINE);
1298
1299 snprintfz(id, RRD_ID_LENGTH_MAX, "mssql_instance_%s_memmgr_total_server_memory_bytes", p->instanceID);
1437 - p->rd_mem_tot_server = rrddim_add(p->st_mem_tot_server,
1438 - id,
1439 - "memory",
1440 - 1,
1441 - 1,
1442 - RRD_ALGORITHM_ABSOLUTE);
1300 + p->rd_mem_tot_server = rrddim_add(p->st_mem_tot_server, id, "memory", 1, 1, RRD_ALGORITHM_ABSOLUTE);
1301
1302 rrdlabels_add(p->st_mem_tot_server->rrdlabels, "mssql_instance", p->instanceID, RRDLABEL_SRC_AUTO);
1303 }
1304
1447 - rrddim_set_by_pointer(p->st_mem_tot_server,
1448 - p->rd_mem_tot_server,
1449 - (collected_number)(p->MSSQLTotalServerMemory.current.Data*1024));
1305 + rrddim_set_by_pointer(
1306 + p->st_mem_tot_server,
1307 + p->rd_mem_tot_server,
1308 + (collected_number)(p->MSSQLTotalServerMemory.current.Data * 1024));
1309 rrdset_done(p->st_mem_tot_server);
1310 }
1311 }
@@ -1463,20 +1322,20 @@ int dict_mssql_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value
1322 do_mssql_memory_mgr,
1323 do_mssql_buffer_management,
1324 do_mssql_sql_statistics,
1466 - do_mssql_access_methods
1467 - };
1325 + do_mssql_access_methods};
1326
1327 DWORD i;
1470 - for (i = 0; i < NETDATA_MSSQL_METRICS_END; i++) {
1328 + for (i = 0; i < NETDATA_MSSQL_METRICS_END; i++) {
1329 if (!doMSSQL[i])
1330 continue;
1331
1332 DWORD id = RegistryFindIDByName(p->objectName[i]);
1475 - if(id == PERFLIB_REGISTRY_NAME_NOT_FOUND)
1333 + if (id == PERFLIB_REGISTRY_NAME_NOT_FOUND)
1334 return -1;
1335
1336 PERF_DATA_BLOCK *pDataBlock = perflibGetPerformanceData(id);
1479 - if(!pDataBlock) return -1;
1337 + if (!pDataBlock)
1338 + return -1;
1339
1340 doMSSQL[i](pDataBlock, p, *update_every);
1341 }
@@ -1484,8 +1343,7 @@ int dict_mssql_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value
1343 return 1;
1344 }
1345
1487 -int do_PerflibMSSQL(int update_every, usec_t dt __maybe_unused)
1488 -{
1346 +int do_PerflibMSSQL(int update_every, usec_t dt __maybe_unused) {
1347 static bool initialized = false;
1348
1349 if (unlikely(!initialized)) {
src/collectors/windows.plugin/perflib-netframework.c
+474 -523
@@ -111,7 +111,10 @@ static inline void initialize_net_framework_processes_keys(struct net_framework_
111 p->NETFrameworkCLRLoadingClassLoadFailure.key = "Total # of Load Failures";
112 }
113
114 -void dict_net_framework_processes_insert_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused) {
114 +void dict_net_framework_processes_insert_cb(
115 + const DICTIONARY_ITEM *item __maybe_unused,
116 + void *value,
117 + void *data __maybe_unused) {
118 struct net_framework_instances *p = value;
119 initialize_net_framework_processes_keys(p);
120 }
@@ -119,27 +122,24 @@ void dict_net_framework_processes_insert_cb(const DICTIONARY_ITEM *item __maybe_
122 static DICTIONARY *processes = NULL;
123
124 static void initialize(void) {
122 - processes = dictionary_create_advanced(DICT_OPTION_DONT_OVERWRITE_VALUE |
123 - DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct net_framework_instances));
125 + processes = dictionary_create_advanced(
126 + DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct net_framework_instances));
127
128 dictionary_register_insert_callback(processes, dict_net_framework_processes_insert_cb, NULL);
129 }
130
128 -static void netdata_framework_clr_exceptions(PERF_DATA_BLOCK *pDataBlock,
129 - PERF_OBJECT_TYPE *pObjectType,
130 - int update_every)
131 -{
131 +static void netdata_framework_clr_exceptions(PERF_DATA_BLOCK *pDataBlock, PERF_OBJECT_TYPE *pObjectType, int update_every) {
132 PERF_INSTANCE_DEFINITION *pi = NULL;
133 char id[RRD_ID_LENGTH_MAX + 1];
134 - for(LONG i = 0; i < pObjectType->NumInstances ; i++) {
134 + for (LONG i = 0; i < pObjectType->NumInstances; i++) {
135 pi = perflibForEachInstance(pDataBlock, pObjectType, pi);
136 if (!pi)
137 break;
138
139 - if(!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
139 + if (!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
140 strncpyz(windows_shared_buffer, "[unknown]", sizeof(windows_shared_buffer) - 1);
141
142 - if(strcasecmp(windows_shared_buffer, "_Global_") == 0)
142 + if (strcasecmp(windows_shared_buffer, "_Global_") == 0)
143 continue;
144
145 netdata_fix_chart_name(windows_shared_buffer);
@@ -148,164 +148,152 @@ static void netdata_framework_clr_exceptions(PERF_DATA_BLOCK *pDataBlock,
148 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRExceptionThrown)) {
149 if (!p->st_clrexception_thrown) {
150 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrexception_thrown", windows_shared_buffer);
151 - p->st_clrexception_thrown = rrdset_create_localhost("netframework"
152 - , id, NULL
153 - , "exceptions"
154 - , "netframework.clrexception_thrown"
155 - , "Thrown exceptions"
156 - , "exceptions/s"
157 - , PLUGIN_WINDOWS_NAME
158 - , "PerflibNetFramework"
159 - , PRIO_NETFRAMEWORK_CLR_EXCEPTION_THROWN
160 - , update_every
161 - , RRDSET_TYPE_LINE
162 - );
151 + p->st_clrexception_thrown = rrdset_create_localhost(
152 + "netframework",
153 + id,
154 + NULL,
155 + "exceptions",
156 + "netframework.clrexception_thrown",
157 + "Thrown exceptions",
158 + "exceptions/s",
159 + PLUGIN_WINDOWS_NAME,
160 + "PerflibNetFramework",
161 + PRIO_NETFRAMEWORK_CLR_EXCEPTION_THROWN,
162 + update_every,
163 + RRDSET_TYPE_LINE);
164
165 snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrexception_thrown_total", windows_shared_buffer);
165 - p->rd_clrexception_thrown = rrddim_add(p->st_clrexception_thrown,
166 - id,
167 - "exceptions",
168 - 1,
169 - 1,
170 - RRD_ALGORITHM_INCREMENTAL);
171 -
172 - rrdlabels_add(p->st_clrexception_thrown->rrdlabels,
173 - "process",
174 - windows_shared_buffer,
175 - RRDLABEL_SRC_AUTO);
166 + p->rd_clrexception_thrown =
167 + rrddim_add(p->st_clrexception_thrown, id, "exceptions", 1, 1, RRD_ALGORITHM_INCREMENTAL);
168 +
169 + rrdlabels_add(
170 + p->st_clrexception_thrown->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
171 }
172
178 - rrddim_set_by_pointer(p->st_clrexception_thrown,
179 - p->rd_clrexception_thrown,
180 - (collected_number)p->NETFrameworkCLRExceptionThrown.current.Data);
173 + rrddim_set_by_pointer(
174 + p->st_clrexception_thrown,
175 + p->rd_clrexception_thrown,
176 + (collected_number)p->NETFrameworkCLRExceptionThrown.current.Data);
177 rrdset_done(p->st_clrexception_thrown);
178 }
179
180 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRExceptionFilters)) {
181 if (!p->st_clrexception_filters) {
182 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrexception_filters", windows_shared_buffer);
187 - p->st_clrexception_filters = rrdset_create_localhost("netframework"
188 - , id, NULL
189 - , "exceptions"
190 - , "netframework.clrexception_filters"
191 - , "Thrown exceptions filters"
192 - , "filters/s"
193 - , PLUGIN_WINDOWS_NAME
194 - , "PerflibNetFramework"
195 - , PRIO_NETFRAMEWORK_CLR_EXCEPTION_FILTERS
196 - , update_every
197 - , RRDSET_TYPE_LINE
198 - );
183 + p->st_clrexception_filters = rrdset_create_localhost(
184 + "netframework",
185 + id,
186 + NULL,
187 + "exceptions",
188 + "netframework.clrexception_filters",
189 + "Thrown exceptions filters",
190 + "filters/s",
191 + PLUGIN_WINDOWS_NAME,
192 + "PerflibNetFramework",
193 + PRIO_NETFRAMEWORK_CLR_EXCEPTION_FILTERS,
194 + update_every,
195 + RRDSET_TYPE_LINE);
196
197 snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrexception_filters_total", windows_shared_buffer);
201 - p->rd_clrexception_filters = rrddim_add(p->st_clrexception_filters,
202 - id,
203 - "filters",
204 - 1,
205 - 1,
206 - RRD_ALGORITHM_INCREMENTAL);
207 -
208 - rrdlabels_add(p->st_clrexception_filters->rrdlabels,
209 - "process",
210 - windows_shared_buffer,
211 - RRDLABEL_SRC_AUTO);
198 + p->rd_clrexception_filters =
199 + rrddim_add(p->st_clrexception_filters, id, "filters", 1, 1, RRD_ALGORITHM_INCREMENTAL);
200 +
201 + rrdlabels_add(
202 + p->st_clrexception_filters->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
203 }
204
214 - rrddim_set_by_pointer(p->st_clrexception_filters,
215 - p->rd_clrexception_filters,
216 - (collected_number)p->NETFrameworkCLRExceptionFilters.current.Data);
205 + rrddim_set_by_pointer(
206 + p->st_clrexception_filters,
207 + p->rd_clrexception_filters,
208 + (collected_number)p->NETFrameworkCLRExceptionFilters.current.Data);
209 rrdset_done(p->st_clrexception_filters);
210 }
211
212 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRExceptionFinallys)) {
213 if (!p->st_clrexception_finallys) {
214 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrexception_finallys", windows_shared_buffer);
223 - p->st_clrexception_finallys = rrdset_create_localhost("netframework"
224 - , id, NULL
225 - , "exceptions"
226 - , "netframework.clrexception_finallys"
227 - , "Executed finally blocks"
228 - , "finallys/s"
229 - , PLUGIN_WINDOWS_NAME
230 - , "PerflibNetFramework"
231 - , PRIO_NETFRAMEWORK_CLR_EXCEPTION_FINALLYS
232 - , update_every
233 - , RRDSET_TYPE_LINE
234 - );
215 + p->st_clrexception_finallys = rrdset_create_localhost(
216 + "netframework",
217 + id,
218 + NULL,
219 + "exceptions",
220 + "netframework.clrexception_finallys",
221 + "Executed finally blocks",
222 + "finallys/s",
223 + PLUGIN_WINDOWS_NAME,
224 + "PerflibNetFramework",
225 + PRIO_NETFRAMEWORK_CLR_EXCEPTION_FINALLYS,
226 + update_every,
227 + RRDSET_TYPE_LINE);
228
229 snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrexception_finallys_total", windows_shared_buffer);
237 - p->rd_clrexception_finallys = rrddim_add(p->st_clrexception_finallys,
238 - id,
239 - "finallys",
240 - 1,
241 - 1,
242 - RRD_ALGORITHM_INCREMENTAL);
243 -
244 - rrdlabels_add(p->st_clrexception_finallys->rrdlabels,
245 - "process",
246 - windows_shared_buffer,
247 - RRDLABEL_SRC_AUTO);
230 + p->rd_clrexception_finallys =
231 + rrddim_add(p->st_clrexception_finallys, id, "finallys", 1, 1, RRD_ALGORITHM_INCREMENTAL);
232 +
233 + rrdlabels_add(
234 + p->st_clrexception_finallys->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
235 }
236
250 - rrddim_set_by_pointer(p->st_clrexception_finallys,
251 - p->rd_clrexception_finallys,
252 - (collected_number)p->NETFrameworkCLRExceptionFinallys.current.Data);
237 + rrddim_set_by_pointer(
238 + p->st_clrexception_finallys,
239 + p->rd_clrexception_finallys,
240 + (collected_number)p->NETFrameworkCLRExceptionFinallys.current.Data);
241 rrdset_done(p->st_clrexception_finallys);
242 }
243
244 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRExceptionTotalCatchDepth)) {
245 if (!p->st_clrexception_total_catch_depth) {
246 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrexception_throw_to_catch_depth", windows_shared_buffer);
259 - p->st_clrexception_total_catch_depth = rrdset_create_localhost("netframework"
260 - , id, NULL
261 - , "exceptions"
262 - , "netframework.clrexception_throw_to_catch_depth"
263 - , "Traversed stack frames"
264 - , "stack_frames/s"
265 - , PLUGIN_WINDOWS_NAME
266 - , "PerflibNetFramework"
267 - , PRIO_NETFRAMEWORK_CLR_EXCEPTION_THROW_TO_CATCH_DEPTH
268 - , update_every
269 - , RRDSET_TYPE_LINE
270 - );
271 -
272 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrexception_throw_to_catch_depth_total", windows_shared_buffer);
273 - p->rd_clrexception_total_catch_depth = rrddim_add(p->st_clrexception_total_catch_depth,
274 - id,
275 - "traversed",
276 - 1,
277 - 1,
278 - RRD_ALGORITHM_INCREMENTAL);
279 -
280 - rrdlabels_add(p->st_clrexception_total_catch_depth->rrdlabels,
281 - "process",
282 - windows_shared_buffer,
283 - RRDLABEL_SRC_AUTO);
247 + p->st_clrexception_total_catch_depth = rrdset_create_localhost(
248 + "netframework",
249 + id,
250 + NULL,
251 + "exceptions",
252 + "netframework.clrexception_throw_to_catch_depth",
253 + "Traversed stack frames",
254 + "stack_frames/s",
255 + PLUGIN_WINDOWS_NAME,
256 + "PerflibNetFramework",
257 + PRIO_NETFRAMEWORK_CLR_EXCEPTION_THROW_TO_CATCH_DEPTH,
258 + update_every,
259 + RRDSET_TYPE_LINE);
260 +
261 + snprintfz(
262 + id,
263 + RRD_ID_LENGTH_MAX,
264 + "netframework_%s_clrexception_throw_to_catch_depth_total",
265 + windows_shared_buffer);
266 + p->rd_clrexception_total_catch_depth =
267 + rrddim_add(p->st_clrexception_total_catch_depth, id, "traversed", 1, 1, RRD_ALGORITHM_INCREMENTAL);
268 +
269 + rrdlabels_add(
270 + p->st_clrexception_total_catch_depth->rrdlabels,
271 + "process",
272 + windows_shared_buffer,
273 + RRDLABEL_SRC_AUTO);
274 }
275
286 - rrddim_set_by_pointer(p->st_clrexception_total_catch_depth,
287 - p->rd_clrexception_total_catch_depth,
288 - (collected_number)p->NETFrameworkCLRExceptionTotalCatchDepth.current.Data);
276 + rrddim_set_by_pointer(
277 + p->st_clrexception_total_catch_depth,
278 + p->rd_clrexception_total_catch_depth,
279 + (collected_number)p->NETFrameworkCLRExceptionTotalCatchDepth.current.Data);
280 rrdset_done(p->st_clrexception_total_catch_depth);
281 }
282 }
283 }
284
294 -static void netdata_framework_clr_interop(PERF_DATA_BLOCK *pDataBlock,
295 - PERF_OBJECT_TYPE *pObjectType,
296 - int update_every)
297 -{
285 +static void netdata_framework_clr_interop(PERF_DATA_BLOCK *pDataBlock, PERF_OBJECT_TYPE *pObjectType, int update_every) {
286 PERF_INSTANCE_DEFINITION *pi = NULL;
287 char id[RRD_ID_LENGTH_MAX + 1];
300 - for(LONG i = 0; i < pObjectType->NumInstances ; i++) {
288 + for (LONG i = 0; i < pObjectType->NumInstances; i++) {
289 pi = perflibForEachInstance(pDataBlock, pObjectType, pi);
290 if (!pi)
291 break;
292
305 - if(!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
293 + if (!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
294 strncpyz(windows_shared_buffer, "[unknown]", sizeof(windows_shared_buffer) - 1);
295
308 - if(strcasecmp(windows_shared_buffer, "_Global_") == 0)
296 + if (strcasecmp(windows_shared_buffer, "_Global_") == 0)
297 continue;
298
299 netdata_fix_chart_name(windows_shared_buffer);
@@ -314,128 +302,136 @@ static void netdata_framework_clr_interop(PERF_DATA_BLOCK *pDataBlock,
302 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRInteropCOMCallableWrappers)) {
303 if (!p->st_clrinterop_com_callable_wrappers) {
304 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrinterop_com_callable_wrappers", windows_shared_buffer);
317 - p->st_clrinterop_com_callable_wrappers = rrdset_create_localhost("netframework"
318 - , id, NULL
319 - , "interop"
320 - , "netframework.clrinterop_com_callable_wrappers"
321 - , "COM callable wrappers (CCW)"
322 - , "ccw/s"
323 - , PLUGIN_WINDOWS_NAME
324 - , "PerflibNetFramework"
325 - , PRIO_NETFRAMEWORK_CLR_INTEROP_CCW
326 - , update_every
327 - , RRDSET_TYPE_LINE
328 - );
329 -
330 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrinterop_com_callable_wrappers_total", windows_shared_buffer);
331 - p->rd_clrinterop_com_callable_wrappers = rrddim_add(p->st_clrinterop_com_callable_wrappers,
332 - id,
333 - "com_callable_wrappers",
334 - 1,
335 - 1,
336 - RRD_ALGORITHM_INCREMENTAL);
337 -
338 - rrdlabels_add(p->st_clrinterop_com_callable_wrappers->rrdlabels,
339 - "process",
340 - windows_shared_buffer,
341 - RRDLABEL_SRC_AUTO);
305 + p->st_clrinterop_com_callable_wrappers = rrdset_create_localhost(
306 + "netframework",
307 + id,
308 + NULL,
309 + "interop",
310 + "netframework.clrinterop_com_callable_wrappers",
311 + "COM callable wrappers (CCW)",
312 + "ccw/s",
313 + PLUGIN_WINDOWS_NAME,
314 + "PerflibNetFramework",
315 + PRIO_NETFRAMEWORK_CLR_INTEROP_CCW,
316 + update_every,
317 + RRDSET_TYPE_LINE);
318 +
319 + snprintfz(
320 + id,
321 + RRD_ID_LENGTH_MAX,
322 + "netframework_%s_clrinterop_com_callable_wrappers_total",
323 + windows_shared_buffer);
324 + p->rd_clrinterop_com_callable_wrappers = rrddim_add(
325 + p->st_clrinterop_com_callable_wrappers,
326 + id,
327 + "com_callable_wrappers",
328 + 1,
329 + 1,
330 + RRD_ALGORITHM_INCREMENTAL);
331 +
332 + rrdlabels_add(
333 + p->st_clrinterop_com_callable_wrappers->rrdlabels,
334 + "process",
335 + windows_shared_buffer,
336 + RRDLABEL_SRC_AUTO);
337 }
338
344 - rrddim_set_by_pointer(p->st_clrinterop_com_callable_wrappers,
345 - p->rd_clrinterop_com_callable_wrappers,
346 - (collected_number)p->NETFrameworkCLRInteropCOMCallableWrappers.current.Data);
339 + rrddim_set_by_pointer(
340 + p->st_clrinterop_com_callable_wrappers,
341 + p->rd_clrinterop_com_callable_wrappers,
342 + (collected_number)p->NETFrameworkCLRInteropCOMCallableWrappers.current.Data);
343 rrdset_done(p->st_clrinterop_com_callable_wrappers);
344 }
345
346 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRInteropMarshalling)) {
347 if (!p->st_clrinterop_marshalling) {
348 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrinterop_interop_marshalling", windows_shared_buffer);
353 - p->st_clrinterop_marshalling = rrdset_create_localhost("netframework"
354 - , id, NULL
355 - , "interop"
356 - , "netframework.clrinterop_interop_marshallings"
357 - , "Arguments and return values marshallings"
358 - , "marshalling/s"
359 - , PLUGIN_WINDOWS_NAME
360 - , "PerflibNetFramework"
361 - , PRIO_NETFRAMEWORK_CLR_INTEROP_MARSHALLING
362 - , update_every
363 - , RRDSET_TYPE_LINE
364 - );
365 -
366 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrinterop_interop_marshalling_total", windows_shared_buffer);
367 - p->rd_clrinterop_marshalling = rrddim_add(p->st_clrinterop_marshalling,
368 - id,
369 - "marshallings",
370 - 1,
371 - 1,
372 - RRD_ALGORITHM_INCREMENTAL);
373 -
374 - rrdlabels_add(p->st_clrinterop_marshalling->rrdlabels,
375 - "process",
376 - windows_shared_buffer,
377 - RRDLABEL_SRC_AUTO);
349 + p->st_clrinterop_marshalling = rrdset_create_localhost(
350 + "netframework",
351 + id,
352 + NULL,
353 + "interop",
354 + "netframework.clrinterop_interop_marshallings",
355 + "Arguments and return values marshallings",
356 + "marshalling/s",
357 + PLUGIN_WINDOWS_NAME,
358 + "PerflibNetFramework",
359 + PRIO_NETFRAMEWORK_CLR_INTEROP_MARSHALLING,
360 + update_every,
361 + RRDSET_TYPE_LINE);
362 +
363 + snprintfz(
364 + id,
365 + RRD_ID_LENGTH_MAX,
366 + "netframework_%s_clrinterop_interop_marshalling_total",
367 + windows_shared_buffer);
368 + p->rd_clrinterop_marshalling =
369 + rrddim_add(p->st_clrinterop_marshalling, id, "marshallings", 1, 1, RRD_ALGORITHM_INCREMENTAL);
370 +
371 + rrdlabels_add(
372 + p->st_clrinterop_marshalling->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
373 }
374
380 - rrddim_set_by_pointer(p->st_clrinterop_marshalling,
381 - p->rd_clrinterop_marshalling,
382 - (collected_number)p->NETFrameworkCLRInteropMarshalling.current.Data);
375 + rrddim_set_by_pointer(
376 + p->st_clrinterop_marshalling,
377 + p->rd_clrinterop_marshalling,
378 + (collected_number)p->NETFrameworkCLRInteropMarshalling.current.Data);
379 rrdset_done(p->st_clrinterop_marshalling);
380 }
381
382 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRInteropStubsCreated)) {
383 if (!p->st_clrinterop_interop_stubs_created) {
384 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrinterop_interop_stubs_created", windows_shared_buffer);
389 - p->st_clrinterop_interop_stubs_created = rrdset_create_localhost("netframework"
390 - , id, NULL
391 - , "interop"
392 - , "netframework.clrinterop_interop_stubs_created"
393 - , "Created stubs"
394 - , "stubs/s"
395 - , PLUGIN_WINDOWS_NAME
396 - , "PerflibNetFramework"
397 - , PRIO_NETFRAMEWORK_CLR_INTEROP_STUBS_CREATED
398 - , update_every
399 - , RRDSET_TYPE_LINE
400 - );
401 -
402 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrinterop_interop_stubs_created_total", windows_shared_buffer);
403 - p->rd_clrinterop_interop_stubs_created = rrddim_add(p->st_clrinterop_interop_stubs_created,
404 - id,
405 - "created",
406 - 1,
407 - 1,
408 - RRD_ALGORITHM_INCREMENTAL);
409 -
410 - rrdlabels_add(p->st_clrinterop_interop_stubs_created->rrdlabels,
411 - "process",
412 - windows_shared_buffer,
413 - RRDLABEL_SRC_AUTO);
385 + p->st_clrinterop_interop_stubs_created = rrdset_create_localhost(
386 + "netframework",
387 + id,
388 + NULL,
389 + "interop",
390 + "netframework.clrinterop_interop_stubs_created",
391 + "Created stubs",
392 + "stubs/s",
393 + PLUGIN_WINDOWS_NAME,
394 + "PerflibNetFramework",
395 + PRIO_NETFRAMEWORK_CLR_INTEROP_STUBS_CREATED,
396 + update_every,
397 + RRDSET_TYPE_LINE);
398 +
399 + snprintfz(
400 + id,
401 + RRD_ID_LENGTH_MAX,
402 + "netframework_%s_clrinterop_interop_stubs_created_total",
403 + windows_shared_buffer);
404 + p->rd_clrinterop_interop_stubs_created =
405 + rrddim_add(p->st_clrinterop_interop_stubs_created, id, "created", 1, 1, RRD_ALGORITHM_INCREMENTAL);
406 +
407 + rrdlabels_add(
408 + p->st_clrinterop_interop_stubs_created->rrdlabels,
409 + "process",
410 + windows_shared_buffer,
411 + RRDLABEL_SRC_AUTO);
412 }
413
416 - rrddim_set_by_pointer(p->st_clrinterop_interop_stubs_created,
417 - p->rd_clrinterop_interop_stubs_created,
418 - (collected_number)p->NETFrameworkCLRInteropStubsCreated.current.Data);
414 + rrddim_set_by_pointer(
415 + p->st_clrinterop_interop_stubs_created,
416 + p->rd_clrinterop_interop_stubs_created,
417 + (collected_number)p->NETFrameworkCLRInteropStubsCreated.current.Data);
418 rrdset_done(p->st_clrinterop_interop_stubs_created);
419 }
420 }
421 }
422
424 -static void netdata_framework_clr_jit(PERF_DATA_BLOCK *pDataBlock,
425 - PERF_OBJECT_TYPE *pObjectType,
426 - int update_every)
427 -{
423 +static void netdata_framework_clr_jit(PERF_DATA_BLOCK *pDataBlock, PERF_OBJECT_TYPE *pObjectType, int update_every) {
424 PERF_INSTANCE_DEFINITION *pi = NULL;
425 char id[RRD_ID_LENGTH_MAX + 1];
430 - for(LONG i = 0; i < pObjectType->NumInstances ; i++) {
426 + for (LONG i = 0; i < pObjectType->NumInstances; i++) {
427 pi = perflibForEachInstance(pDataBlock, pObjectType, pi);
428 if (!pi)
429 break;
430
435 - if(!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
431 + if (!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
432 strncpyz(windows_shared_buffer, "[unknown]", sizeof(windows_shared_buffer) - 1);
433
438 - if(strcasecmp(windows_shared_buffer, "_Global_") == 0)
434 + if (strcasecmp(windows_shared_buffer, "_Global_") == 0)
435 continue;
436
437 netdata_fix_chart_name(windows_shared_buffer);
@@ -444,36 +440,31 @@ static void netdata_framework_clr_jit(PERF_DATA_BLOCK *pDataBlock,
440 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRJITMethods)) {
441 if (!p->st_clrjit_methods) {
442 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrjit_methods", windows_shared_buffer);
447 - p->st_clrjit_methods = rrdset_create_localhost("netframework"
448 - , id, NULL
449 - , "jit"
450 - , "netframework.clrjit_methods"
451 - , "JIT-compiled methods"
452 - , "methods/s"
453 - , PLUGIN_WINDOWS_NAME
454 - , "PerflibNetFramework"
455 - , PRIO_NETFRAMEWORK_CLR_JIT_METHODS
456 - , update_every
457 - , RRDSET_TYPE_LINE
458 - );
443 + p->st_clrjit_methods = rrdset_create_localhost(
444 + "netframework",
445 + id,
446 + NULL,
447 + "jit",
448 + "netframework.clrjit_methods",
449 + "JIT-compiled methods",
450 + "methods/s",
451 + PLUGIN_WINDOWS_NAME,
452 + "PerflibNetFramework",
453 + PRIO_NETFRAMEWORK_CLR_JIT_METHODS,
454 + update_every,
455 + RRDSET_TYPE_LINE);
456
457 snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrjit_methods_total", windows_shared_buffer);
461 - p->rd_clrjit_methods = rrddim_add(p->st_clrjit_methods,
462 - id,
463 - "jit-compiled",
464 - 1,
465 - 1,
466 - RRD_ALGORITHM_INCREMENTAL);
467 -
468 - rrdlabels_add(p->st_clrjit_methods->rrdlabels,
469 - "process",
470 - windows_shared_buffer,
471 - RRDLABEL_SRC_AUTO);
458 + p->rd_clrjit_methods =
459 + rrddim_add(p->st_clrjit_methods, id, "jit-compiled", 1, 1, RRD_ALGORITHM_INCREMENTAL);
460 +
461 + rrdlabels_add(p->st_clrjit_methods->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
462 }
463
474 - rrddim_set_by_pointer(p->st_clrjit_methods,
475 - p->rd_clrjit_methods,
476 - (collected_number)p->NETFrameworkCLRJITMethods.current.Data);
464 + rrddim_set_by_pointer(
465 + p->st_clrjit_methods,
466 + p->rd_clrjit_methods,
467 + (collected_number)p->NETFrameworkCLRJITMethods.current.Data);
468 rrdset_done(p->st_clrjit_methods);
469 }
470
@@ -481,131 +472,111 @@ static void netdata_framework_clr_jit(PERF_DATA_BLOCK *pDataBlock,
472 perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRJITPercentTime)) {
473 if (!p->st_clrjit_time) {
474 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrjit_time", windows_shared_buffer);
484 - p->st_clrjit_time = rrdset_create_localhost("netframework"
485 - , id, NULL
486 - , "jit"
487 - , "netframework.clrjit_time"
488 - , "Time spent in JIT compilation"
489 - , "percentage"
490 - , PLUGIN_WINDOWS_NAME
491 - , "PerflibNetFramework"
492 - , PRIO_NETFRAMEWORK_CLR_JIT_TIME
493 - , update_every
494 - , RRDSET_TYPE_LINE
495 - );
475 + p->st_clrjit_time = rrdset_create_localhost(
476 + "netframework",
477 + id,
478 + NULL,
479 + "jit",
480 + "netframework.clrjit_time",
481 + "Time spent in JIT compilation",
482 + "percentage",
483 + PLUGIN_WINDOWS_NAME,
484 + "PerflibNetFramework",
485 + PRIO_NETFRAMEWORK_CLR_JIT_TIME,
486 + update_every,
487 + RRDSET_TYPE_LINE);
488
489 snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrjit_time_percent", windows_shared_buffer);
498 - p->rd_clrjit_time = rrddim_add(p->st_clrjit_time,
499 - id,
500 - "time",
501 - 1,
502 - 100,
503 - RRD_ALGORITHM_ABSOLUTE);
504 -
505 - rrdlabels_add(p->st_clrjit_time->rrdlabels,
506 - "process",
507 - windows_shared_buffer,
508 - RRDLABEL_SRC_AUTO);
490 + p->rd_clrjit_time = rrddim_add(p->st_clrjit_time, id, "time", 1, 100, RRD_ALGORITHM_ABSOLUTE);
491 +
492 + rrdlabels_add(p->st_clrjit_time->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
493 }
494
511 - double percTime = (double) p->NETFrameworkCLRJITPercentTime.current.Data;
512 - percTime /= (double) p->NETFrameworkCLRJITFrequencyTime.current.Data;
495 + double percTime = (double)p->NETFrameworkCLRJITPercentTime.current.Data;
496 + percTime /= (double)p->NETFrameworkCLRJITFrequencyTime.current.Data;
497 percTime *= 100;
514 - rrddim_set_by_pointer(p->st_clrjit_time,
515 - p->rd_clrjit_time,
516 - (collected_number) percTime);
498 + rrddim_set_by_pointer(p->st_clrjit_time, p->rd_clrjit_time, (collected_number)percTime);
499 rrdset_done(p->st_clrjit_time);
500 }
501
502 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRJITStandardFailures)) {
503 if (!p->st_clrjit_standard_failures) {
504 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrjit_standard_failures", windows_shared_buffer);
523 - p->st_clrjit_standard_failures = rrdset_create_localhost("netframework"
524 - , id, NULL
525 - , "jit"
526 - , "netframework.clrjit_standard_failures"
527 - , "JIT compiler failures"
528 - , "failures/s"
529 - , PLUGIN_WINDOWS_NAME
530 - , "PerflibNetFramework"
531 - , PRIO_NETFRAMEWORK_CLR_JIT_STANDARD_FAILURES
532 - , update_every
533 - , RRDSET_TYPE_LINE
534 - );
535 -
536 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrjit_standard_failures_total", windows_shared_buffer);
537 - p->rd_clrjit_standard_failures = rrddim_add(p->st_clrjit_standard_failures,
538 - id,
539 - "failures",
540 - 1,
541 - 1,
542 - RRD_ALGORITHM_INCREMENTAL);
543 -
544 - rrdlabels_add(p->st_clrjit_standard_failures->rrdlabels,
545 - "process",
546 - windows_shared_buffer,
547 - RRDLABEL_SRC_AUTO);
505 + p->st_clrjit_standard_failures = rrdset_create_localhost(
506 + "netframework",
507 + id,
508 + NULL,
509 + "jit",
510 + "netframework.clrjit_standard_failures",
511 + "JIT compiler failures",
512 + "failures/s",
513 + PLUGIN_WINDOWS_NAME,
514 + "PerflibNetFramework",
515 + PRIO_NETFRAMEWORK_CLR_JIT_STANDARD_FAILURES,
516 + update_every,
517 + RRDSET_TYPE_LINE);
518 +
519 + snprintfz(
520 + id, RRD_ID_LENGTH_MAX, "netframework_%s_clrjit_standard_failures_total", windows_shared_buffer);
521 + p->rd_clrjit_standard_failures =
522 + rrddim_add(p->st_clrjit_standard_failures, id, "failures", 1, 1, RRD_ALGORITHM_INCREMENTAL);
523 +
524 + rrdlabels_add(
525 + p->st_clrjit_standard_failures->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
526 }
527
550 - rrddim_set_by_pointer(p->st_clrjit_standard_failures,
551 - p->rd_clrjit_standard_failures,
552 - (collected_number)p->NETFrameworkCLRJITStandardFailures.current.Data);
528 + rrddim_set_by_pointer(
529 + p->st_clrjit_standard_failures,
530 + p->rd_clrjit_standard_failures,
531 + (collected_number)p->NETFrameworkCLRJITStandardFailures.current.Data);
532 rrdset_done(p->st_clrjit_standard_failures);
533 }
534
535 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRJITIlBytes)) {
536 if (!p->st_clrjit_il_bytes) {
537 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrjit_il_bytes", windows_shared_buffer);
559 - p->st_clrjit_il_bytes = rrdset_create_localhost("netframework"
560 - , id, NULL
561 - , "jit"
562 - , "netframework.clrjit_il_bytes"
563 - , "Compiled Microsoft intermediate language (MSIL) bytes"
564 - , "bytes/s"
565 - , PLUGIN_WINDOWS_NAME
566 - , "PerflibNetFramework"
567 - , PRIO_NETFRAMEWORK_CLR_JIT_IL_BYTES
568 - , update_every
569 - , RRDSET_TYPE_LINE
570 - );
538 + p->st_clrjit_il_bytes = rrdset_create_localhost(
539 + "netframework",
540 + id,
541 + NULL,
542 + "jit",
543 + "netframework.clrjit_il_bytes",
544 + "Compiled Microsoft intermediate language (MSIL) bytes",
545 + "bytes/s",
546 + PLUGIN_WINDOWS_NAME,
547 + "PerflibNetFramework",
548 + PRIO_NETFRAMEWORK_CLR_JIT_IL_BYTES,
549 + update_every,
550 + RRDSET_TYPE_LINE);
551
552 snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrjit_il_bytes_total", windows_shared_buffer);
573 - p->rd_clrjit_il_bytes = rrddim_add(p->st_clrjit_il_bytes,
574 - id,
575 - "compiled_msil",
576 - 1,
577 - 1,
578 - RRD_ALGORITHM_INCREMENTAL);
579 -
580 - rrdlabels_add(p->st_clrjit_il_bytes->rrdlabels,
581 - "process",
582 - windows_shared_buffer,
583 - RRDLABEL_SRC_AUTO);
553 + p->rd_clrjit_il_bytes =
554 + rrddim_add(p->st_clrjit_il_bytes, id, "compiled_msil", 1, 1, RRD_ALGORITHM_INCREMENTAL);
555 +
556 + rrdlabels_add(p->st_clrjit_il_bytes->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
557 }
558
586 - rrddim_set_by_pointer(p->st_clrjit_il_bytes,
587 - p->rd_clrjit_il_bytes,
588 - (collected_number)p->NETFrameworkCLRJITIlBytes.current.Data);
559 + rrddim_set_by_pointer(
560 + p->st_clrjit_il_bytes,
561 + p->rd_clrjit_il_bytes,
562 + (collected_number)p->NETFrameworkCLRJITIlBytes.current.Data);
563 rrdset_done(p->st_clrjit_il_bytes);
564 }
565 }
566 }
567
594 -static void netdata_framework_clr_loading(PERF_DATA_BLOCK *pDataBlock,
595 - PERF_OBJECT_TYPE *pObjectType,
596 - int update_every)
597 -{
568 +static void netdata_framework_clr_loading(PERF_DATA_BLOCK *pDataBlock, PERF_OBJECT_TYPE *pObjectType, int update_every) {
569 char id[RRD_ID_LENGTH_MAX + 1];
570 PERF_INSTANCE_DEFINITION *pi = NULL;
600 - for(LONG i = 0; i < pObjectType->NumInstances ; i++) {
571 + for (LONG i = 0; i < pObjectType->NumInstances; i++) {
572 pi = perflibForEachInstance(pDataBlock, pObjectType, pi);
573 if (!pi)
574 break;
575
605 - if(!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
576 + if (!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
577 strncpyz(windows_shared_buffer, "[unknown]", sizeof(windows_shared_buffer) - 1);
578
608 - if(strcasecmp(windows_shared_buffer, "_Global_") == 0)
579 + if (strcasecmp(windows_shared_buffer, "_Global_") == 0)
580 continue;
581
582 netdata_fix_chart_name(windows_shared_buffer);
@@ -614,216 +585,207 @@ static void netdata_framework_clr_loading(PERF_DATA_BLOCK *pDataBlock,
585 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRLoadingHeapSize)) {
586 if (!p->st_clrloading_heap_size) {
587 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrloading_loader_heap_size", windows_shared_buffer);
617 - p->st_clrloading_heap_size = rrdset_create_localhost("netframework"
618 - , id, NULL
619 - , "loading"
620 - , "netframework.clrloading_loader_heap_size"
621 - , "Memory committed by class loader"
622 - , "bytes"
623 - , PLUGIN_WINDOWS_NAME
624 - , "PerflibNetFramework"
625 - , PRIO_NETFRAMEWORK_CLR_LOADING_HEAP_SIZE
626 - , update_every
627 - , RRDSET_TYPE_LINE
628 - );
629 -
630 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_loader_heap_size_bytes", windows_shared_buffer);
631 - p->rd_clrloading_heap_size = rrddim_add(p->st_clrloading_heap_size,
632 - id,
633 - "committed",
634 - 1,
635 - 1,
636 - RRD_ALGORITHM_ABSOLUTE);
637 -
638 - rrdlabels_add(p->st_clrloading_heap_size->rrdlabels,
639 - "process",
640 - windows_shared_buffer,
641 - RRDLABEL_SRC_AUTO);
588 + p->st_clrloading_heap_size = rrdset_create_localhost(
589 + "netframework",
590 + id,
591 + NULL,
592 + "loading",
593 + "netframework.clrloading_loader_heap_size",
594 + "Memory committed by class loader",
595 + "bytes",
596 + PLUGIN_WINDOWS_NAME,
597 + "PerflibNetFramework",
598 + PRIO_NETFRAMEWORK_CLR_LOADING_HEAP_SIZE,
599 + update_every,
600 + RRDSET_TYPE_LINE);
601 +
602 + snprintfz(
603 + id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_loader_heap_size_bytes", windows_shared_buffer);
604 + p->rd_clrloading_heap_size =
605 + rrddim_add(p->st_clrloading_heap_size, id, "committed", 1, 1, RRD_ALGORITHM_ABSOLUTE);
606 +
607 + rrdlabels_add(
608 + p->st_clrloading_heap_size->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
609 }
610
644 - rrddim_set_by_pointer(p->st_clrloading_heap_size,
645 - p->rd_clrloading_heap_size,
646 - (collected_number)p->NETFrameworkCLRLoadingHeapSize.current.Data);
611 + rrddim_set_by_pointer(
612 + p->st_clrloading_heap_size,
613 + p->rd_clrloading_heap_size,
614 + (collected_number)p->NETFrameworkCLRLoadingHeapSize.current.Data);
615 rrdset_done(p->st_clrloading_heap_size);
616 }
617
618 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRLoadingAppDomainsLoaded)) {
619 if (!p->st_clrloading_app_domains_loaded) {
620 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrloading_appdomains_loaded", windows_shared_buffer);
653 - p->st_clrloading_app_domains_loaded = rrdset_create_localhost("netframework"
654 - , id, NULL
655 - , "loading"
656 - , "netframework.clrloading_appdomains_loaded"
657 - , "Loaded application domains"
658 - , "domain/s"
659 - , PLUGIN_WINDOWS_NAME
660 - , "PerflibNetFramework"
661 - , PRIO_NETFRAMEWORK_CLR_LOADING_APP_DOMAINS_LOADED
662 - , update_every
663 - , RRDSET_TYPE_LINE
664 - );
665 -
666 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_appdomains_loaded_total", windows_shared_buffer);
667 - p->rd_clrloading_app_domains_loaded = rrddim_add(p->st_clrloading_app_domains_loaded,
668 - id,
669 - "loaded",
670 - 1,
671 - 1,
672 - RRD_ALGORITHM_INCREMENTAL);
673 -
674 - rrdlabels_add(p->st_clrloading_app_domains_loaded->rrdlabels,
675 - "process",
676 - windows_shared_buffer,
677 - RRDLABEL_SRC_AUTO);
621 + p->st_clrloading_app_domains_loaded = rrdset_create_localhost(
622 + "netframework",
623 + id,
624 + NULL,
625 + "loading",
626 + "netframework.clrloading_appdomains_loaded",
627 + "Loaded application domains",
628 + "domain/s",
629 + PLUGIN_WINDOWS_NAME,
630 + "PerflibNetFramework",
631 + PRIO_NETFRAMEWORK_CLR_LOADING_APP_DOMAINS_LOADED,
632 + update_every,
633 + RRDSET_TYPE_LINE);
634 +
635 + snprintfz(
636 + id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_appdomains_loaded_total", windows_shared_buffer);
637 + p->rd_clrloading_app_domains_loaded =
638 + rrddim_add(p->st_clrloading_app_domains_loaded, id, "loaded", 1, 1, RRD_ALGORITHM_INCREMENTAL);
639 +
640 + rrdlabels_add(
641 + p->st_clrloading_app_domains_loaded->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
642 }
643
680 - rrddim_set_by_pointer(p->st_clrloading_app_domains_loaded,
681 - p->rd_clrloading_app_domains_loaded,
682 - (collected_number)p->NETFrameworkCLRLoadingAppDomainsLoaded.current.Data);
644 + rrddim_set_by_pointer(
645 + p->st_clrloading_app_domains_loaded,
646 + p->rd_clrloading_app_domains_loaded,
647 + (collected_number)p->NETFrameworkCLRLoadingAppDomainsLoaded.current.Data);
648 rrdset_done(p->st_clrloading_app_domains_loaded);
649 }
650
651 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRLoadingAppDomainsUnloaded)) {
687 - if (!p->st_clrloading_app_domains_unloaded) {
688 - snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrloading_appdomains_unloaded", windows_shared_buffer);
689 - p->st_clrloading_app_domains_unloaded = rrdset_create_localhost("netframework"
690 - , id, NULL
691 - , "loading"
692 - , "netframework.clrloading_appdomains_unloaded"
693 - , "Unloaded application domains"
694 - , "domain/s"
695 - , PLUGIN_WINDOWS_NAME
696 - , "PerflibNetFramework"
697 - , PRIO_NETFRAMEWORK_CLR_LOADING_APP_DOMAINS_UNLOADED
698 - , update_every
699 - , RRDSET_TYPE_LINE
700 - );
701 -
702 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_appdomains_unloaded_total", windows_shared_buffer);
703 - p->rd_clrloading_app_domains_unloaded = rrddim_add(p->st_clrloading_app_domains_unloaded,
704 - id,
705 - "unloaded",
706 - 1,
707 - 1,
708 - RRD_ALGORITHM_INCREMENTAL);
709 -
710 - rrdlabels_add(p->st_clrloading_app_domains_unloaded->rrdlabels,
711 - "process",
712 - windows_shared_buffer,
713 - RRDLABEL_SRC_AUTO);
714 - }
715 -
716 - rrddim_set_by_pointer(p->st_clrloading_app_domains_unloaded,
717 - p->rd_clrloading_app_domains_unloaded,
718 - (collected_number)p->NETFrameworkCLRLoadingAppDomainsUnloaded.current.Data);
719 - rrdset_done(p->st_clrloading_app_domains_unloaded);
652 + if (!p->st_clrloading_app_domains_unloaded) {
653 + snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrloading_appdomains_unloaded", windows_shared_buffer);
654 + p->st_clrloading_app_domains_unloaded = rrdset_create_localhost(
655 + "netframework",
656 + id,
657 + NULL,
658 + "loading",
659 + "netframework.clrloading_appdomains_unloaded",
660 + "Unloaded application domains",
661 + "domain/s",
662 + PLUGIN_WINDOWS_NAME,
663 + "PerflibNetFramework",
664 + PRIO_NETFRAMEWORK_CLR_LOADING_APP_DOMAINS_UNLOADED,
665 + update_every,
666 + RRDSET_TYPE_LINE);
667 +
668 + snprintfz(
669 + id,
670 + RRD_ID_LENGTH_MAX,
671 + "netframework_%s_clrloading_appdomains_unloaded_total",
672 + windows_shared_buffer);
673 + p->rd_clrloading_app_domains_unloaded =
674 + rrddim_add(p->st_clrloading_app_domains_unloaded, id, "unloaded", 1, 1, RRD_ALGORITHM_INCREMENTAL);
675 +
676 + rrdlabels_add(
677 + p->st_clrloading_app_domains_unloaded->rrdlabels,
678 + "process",
679 + windows_shared_buffer,
680 + RRDLABEL_SRC_AUTO);
681 }
682
683 + rrddim_set_by_pointer(
684 + p->st_clrloading_app_domains_unloaded,
685 + p->rd_clrloading_app_domains_unloaded,
686 + (collected_number)p->NETFrameworkCLRLoadingAppDomainsUnloaded.current.Data);
687 + rrdset_done(p->st_clrloading_app_domains_unloaded);
688 + }
689 +
690 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRLoadingAssembliesLoaded)) {
691 if (!p->st_clrloading_assemblies_loaded) {
692 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrloading_assemblies_loaded", windows_shared_buffer);
725 - p->st_clrloading_assemblies_loaded = rrdset_create_localhost("netframework"
726 - , id, NULL
727 - , "loading"
728 - , "netframework.clrloading_assemblies_loaded"
729 - , "Loaded assemblies"
730 - , "assemblies/s"
731 - , PLUGIN_WINDOWS_NAME
732 - , "PerflibNetFramework"
733 - , PRIO_NETFRAMEWORK_CLR_LOADING_ASSEMBLIES_LOADED
734 - , update_every
735 - , RRDSET_TYPE_LINE
736 - );
737 -
738 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_assemblies_loaded_total", windows_shared_buffer);
739 - p->rd_clrloading_assemblies_loaded = rrddim_add(p->st_clrloading_assemblies_loaded,
740 - id,
741 - "loaded",
742 - 1,
743 - 1,
744 - RRD_ALGORITHM_INCREMENTAL);
745 -
746 - rrdlabels_add(p->st_clrloading_assemblies_loaded->rrdlabels,
747 - "process",
748 - windows_shared_buffer,
749 - RRDLABEL_SRC_AUTO);
693 + p->st_clrloading_assemblies_loaded = rrdset_create_localhost(
694 + "netframework",
695 + id,
696 + NULL,
697 + "loading",
698 + "netframework.clrloading_assemblies_loaded",
699 + "Loaded assemblies",
700 + "assemblies/s",
701 + PLUGIN_WINDOWS_NAME,
702 + "PerflibNetFramework",
703 + PRIO_NETFRAMEWORK_CLR_LOADING_ASSEMBLIES_LOADED,
704 + update_every,
705 + RRDSET_TYPE_LINE);
706 +
707 + snprintfz(
708 + id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_assemblies_loaded_total", windows_shared_buffer);
709 + p->rd_clrloading_assemblies_loaded =
710 + rrddim_add(p->st_clrloading_assemblies_loaded, id, "loaded", 1, 1, RRD_ALGORITHM_INCREMENTAL);
711 +
712 + rrdlabels_add(
713 + p->st_clrloading_assemblies_loaded->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
714 }
715
752 - rrddim_set_by_pointer(p->st_clrloading_assemblies_loaded,
753 - p->rd_clrloading_assemblies_loaded,
754 - (collected_number)p->NETFrameworkCLRLoadingAssembliesLoaded.current.Data);
716 + rrddim_set_by_pointer(
717 + p->st_clrloading_assemblies_loaded,
718 + p->rd_clrloading_assemblies_loaded,
719 + (collected_number)p->NETFrameworkCLRLoadingAssembliesLoaded.current.Data);
720 rrdset_done(p->st_clrloading_assemblies_loaded);
721 }
722
723 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRLoadingClassesLoaded)) {
724 if (!p->st_clrloading_classes_loaded) {
725 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrloading_classes_loaded", windows_shared_buffer);
761 - p->st_clrloading_classes_loaded = rrdset_create_localhost("netframework"
762 - , id, NULL
763 - , "loading"
764 - , "netframework.clrloading_classes_loaded"
765 - , "Loaded classes in all assemblies"
766 - , "classes/s"
767 - , PLUGIN_WINDOWS_NAME
768 - , "PerflibNetFramework"
769 - , PRIO_NETFRAMEWORK_CLR_LOADING_CLASSES_LOADED
770 - , update_every
771 - , RRDSET_TYPE_LINE
772 - );
773 -
774 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_classes_loaded_total", windows_shared_buffer);
775 - p->rd_clrloading_classes_loaded = rrddim_add(p->st_clrloading_classes_loaded,
776 - id,
777 - "loaded",
778 - 1,
779 - 1,
780 - RRD_ALGORITHM_INCREMENTAL);
781 -
782 - rrdlabels_add(p->st_clrloading_classes_loaded->rrdlabels,
783 - "process",
784 - windows_shared_buffer,
785 - RRDLABEL_SRC_AUTO);
726 + p->st_clrloading_classes_loaded = rrdset_create_localhost(
727 + "netframework",
728 + id,
729 + NULL,
730 + "loading",
731 + "netframework.clrloading_classes_loaded",
732 + "Loaded classes in all assemblies",
733 + "classes/s",
734 + PLUGIN_WINDOWS_NAME,
735 + "PerflibNetFramework",
736 + PRIO_NETFRAMEWORK_CLR_LOADING_CLASSES_LOADED,
737 + update_every,
738 + RRDSET_TYPE_LINE);
739 +
740 + snprintfz(
741 + id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_classes_loaded_total", windows_shared_buffer);
742 + p->rd_clrloading_classes_loaded =
743 + rrddim_add(p->st_clrloading_classes_loaded, id, "loaded", 1, 1, RRD_ALGORITHM_INCREMENTAL);
744 +
745 + rrdlabels_add(
746 + p->st_clrloading_classes_loaded->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
747 }
748
788 - rrddim_set_by_pointer(p->st_clrloading_classes_loaded,
789 - p->rd_clrloading_classes_loaded,
790 - (collected_number)p->NETFrameworkCLRLoadingClassesLoaded.current.Data);
749 + rrddim_set_by_pointer(
750 + p->st_clrloading_classes_loaded,
751 + p->rd_clrloading_classes_loaded,
752 + (collected_number)p->NETFrameworkCLRLoadingClassesLoaded.current.Data);
753 rrdset_done(p->st_clrloading_classes_loaded);
754 }
755
756 if (perflibGetObjectCounter(pDataBlock, pObjectType, &p->NETFrameworkCLRLoadingClassLoadFailure)) {
757 if (!p->st_clrloading_class_load_failure) {
758 snprintfz(id, RRD_ID_LENGTH_MAX, "%s_clrloading_class_load_failure", windows_shared_buffer);
797 - p->st_clrloading_class_load_failure = rrdset_create_localhost("netframework"
798 - , id, NULL
799 - , "loading"
800 - , "netframework.clrloading_class_load_failures"
801 - , "Class load failures"
802 - , "failures/s"
803 - , PLUGIN_WINDOWS_NAME
804 - , "PerflibNetFramework"
805 - , PRIO_NETFRAMEWORK_CLR_LOADING_CLASS_LOAD_FAILURE
806 - , update_every
807 - , RRDSET_TYPE_LINE
808 - );
809 -
810 - snprintfz(id, RRD_ID_LENGTH_MAX, "netframework_%s_clrloading_class_load_failures_total", windows_shared_buffer);
811 - p->rd_clrloading_class_load_failure = rrddim_add(p->st_clrloading_class_load_failure,
812 - id,
813 - "class_load",
814 - 1,
815 - 1,
816 - RRD_ALGORITHM_INCREMENTAL);
817 -
818 - rrdlabels_add(p->st_clrloading_class_load_failure->rrdlabels,
819 - "process",
820 - windows_shared_buffer,
821 - RRDLABEL_SRC_AUTO);
759 + p->st_clrloading_class_load_failure = rrdset_create_localhost(
760 + "netframework",
761 + id,
762 + NULL,
763 + "loading",
764 + "netframework.clrloading_class_load_failures",
765 + "Class load failures",
766 + "failures/s",
767 + PLUGIN_WINDOWS_NAME,
768 + "PerflibNetFramework",
769 + PRIO_NETFRAMEWORK_CLR_LOADING_CLASS_LOAD_FAILURE,
770 + update_every,
771 + RRDSET_TYPE_LINE);
772 +
773 + snprintfz(
774 + id,
775 + RRD_ID_LENGTH_MAX,
776 + "netframework_%s_clrloading_class_load_failures_total",
777 + windows_shared_buffer);
778 + p->rd_clrloading_class_load_failure =
779 + rrddim_add(p->st_clrloading_class_load_failure, id, "class_load", 1, 1, RRD_ALGORITHM_INCREMENTAL);
780 +
781 + rrdlabels_add(
782 + p->st_clrloading_class_load_failure->rrdlabels, "process", windows_shared_buffer, RRDLABEL_SRC_AUTO);
783 }
784
824 - rrddim_set_by_pointer(p->st_clrloading_class_load_failure,
825 - p->rd_clrloading_class_load_failure,
826 - (collected_number)p->NETFrameworkCLRLoadingClassLoadFailure.current.Data);
785 + rrddim_set_by_pointer(
786 + p->st_clrloading_class_load_failure,
787 + p->rd_clrloading_class_load_failure,
788 + (collected_number)p->NETFrameworkCLRLoadingClassLoadFailure.current.Data);
789 rrdset_done(p->st_clrloading_class_load_failure);
790 }
791 }
@@ -833,28 +795,15 @@ struct netdata_netframework_objects {
795 char *object;
796 void (*fnct)(PERF_DATA_BLOCK *, PERF_OBJECT_TYPE *, int);
797 } netframewrk_obj[NETDATA_NETFRAMEWORK_END] = {
836 - {
837 - .fnct = netdata_framework_clr_exceptions,
838 - .object = ".NET CLR Exceptions"
839 - },
840 - {
841 - .fnct = netdata_framework_clr_interop,
842 - .object = ".NET CLR Interop"
843 - },
844 - {
845 - .fnct = netdata_framework_clr_jit,
846 - .object = ".NET CLR Jit"
847 - },
848 - {
849 - .fnct = netdata_framework_clr_loading,
850 - .object = ".NET CLR Loading"
851 - }
852 -};
798 + {.fnct = netdata_framework_clr_exceptions, .object = ".NET CLR Exceptions"},
799 + {.fnct = netdata_framework_clr_interop, .object = ".NET CLR Interop"},
800 + {.fnct = netdata_framework_clr_jit, .object = ".NET CLR Jit"},
801 + {.fnct = netdata_framework_clr_loading, .object = ".NET CLR Loading"}};
802
803 int do_PerflibNetFramework(int update_every, usec_t dt __maybe_unused) {
804 static bool initialized = false;
805
857 - if(unlikely(!initialized)) {
806 + if (unlikely(!initialized)) {
807 initialize();
808 initialized = true;
809 }
@@ -862,14 +811,16 @@ int do_PerflibNetFramework(int update_every, usec_t dt __maybe_unused) {
811 int i;
812 for (i = 0; i < NETDATA_NETFRAMEWORK_END; i++) {
813 DWORD id = RegistryFindIDByName(netframewrk_obj[i].object);
865 - if(id == PERFLIB_REGISTRY_NAME_NOT_FOUND)
814 + if (id == PERFLIB_REGISTRY_NAME_NOT_FOUND)
815 continue;
816
817 PERF_DATA_BLOCK *pDataBlock = perflibGetPerformanceData(id);
869 - if(!pDataBlock) continue;
818 + if (!pDataBlock)
819 + continue;
820
821 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, netframewrk_obj[i].object);
872 - if(!pObjectType) continue;
822 + if (!pObjectType)
823 + continue;
824
825 netframewrk_obj[i].fnct(pDataBlock, pObjectType, update_every);
826 }
src/collectors/windows.plugin/perflib-thermalzone.c
+27 -29
@@ -22,22 +22,24 @@ void dict_thermal_zone_insert_cb(const DICTIONARY_ITEM *item __maybe_unused, voi
22 static DICTIONARY *thermal_zones = NULL;
23
24 static void initialize(void) {
25 - thermal_zones = dictionary_create_advanced(DICT_OPTION_DONT_OVERWRITE_VALUE |
26 - DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct thermal_zone));
25 + thermal_zones = dictionary_create_advanced(
26 + DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct thermal_zone));
27
28 dictionary_register_insert_callback(thermal_zones, dict_thermal_zone_insert_cb, NULL);
29 }
30
31 static bool do_thermal_zones(PERF_DATA_BLOCK *pDataBlock, int update_every) {
32 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, "Thermal Zone Information");
33 - if(!pObjectType) return false;
33 + if (!pObjectType)
34 + return false;
35
36 PERF_INSTANCE_DEFINITION *pi = NULL;
36 - for(LONG i = 0; i < pObjectType->NumInstances ; i++) {
37 + for (LONG i = 0; i < pObjectType->NumInstances; i++) {
38 pi = perflibForEachInstance(pDataBlock, pObjectType, pi);
38 - if(!pi) break;
39 + if (!pi)
40 + break;
41
40 - if(!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
42 + if (!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
43 strncpyz(windows_shared_buffer, "[unknown]", sizeof(windows_shared_buffer) - 1);
44
45 netdata_fix_chart_name(windows_shared_buffer);
@@ -46,29 +48,24 @@ static bool do_thermal_zones(PERF_DATA_BLOCK *pDataBlock, int update_every) {
48 perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->thermalZoneTemperature);
49
50 // https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/design-guide
49 - if(!p->st) {
51 + if (!p->st) {
52 char id[RRD_ID_LENGTH_MAX + 1];
53 snprintfz(id, RRD_ID_LENGTH_MAX, "thermalzone_%s_temperature", windows_shared_buffer);
54 p->st = rrdset_create_localhost(
53 - "system"
54 - , id, NULL
55 - , "thermalzone"
56 - , "system.thermalzone_temperature"
57 - , "Thermal zone temperature"
58 - , "Celsius"
59 - , PLUGIN_WINDOWS_NAME
60 - , "ThermalZone"
61 - , NETDATA_CHART_PRIO_WINDOWS_THERMAL_ZONES
62 - , update_every
63 - , RRDSET_TYPE_LINE
64 - );
65 -
66 - p->rd = rrddim_add(p->st,
67 - id,
68 - "temperature",
69 - 1,
70 - 1,
71 - RRD_ALGORITHM_ABSOLUTE);
55 + "system",
56 + id,
57 + NULL,
58 + "thermalzone",
59 + "system.thermalzone_temperature",
60 + "Thermal zone temperature",
61 + "Celsius",
62 + PLUGIN_WINDOWS_NAME,
63 + "ThermalZone",
64 + NETDATA_CHART_PRIO_WINDOWS_THERMAL_ZONES,
65 + update_every,
66 + RRDSET_TYPE_LINE);
67 +
68 + p->rd = rrddim_add(p->st, id, "temperature", 1, 1, RRD_ALGORITHM_ABSOLUTE);
69
70 rrdlabels_add(p->st->rrdlabels, "thermalzone", windows_shared_buffer, RRDLABEL_SRC_AUTO);
71 }
@@ -87,17 +84,18 @@ static bool do_thermal_zones(PERF_DATA_BLOCK *pDataBlock, int update_every) {
84 int do_PerflibThermalZone(int update_every, usec_t dt __maybe_unused) {
85 static bool initialized = false;
86
90 - if(unlikely(!initialized)) {
87 + if (unlikely(!initialized)) {
88 initialize();
89 initialized = true;
90 }
91
92 DWORD id = RegistryFindIDByName("Thermal Zone Information");
96 - if(id == PERFLIB_REGISTRY_NAME_NOT_FOUND)
93 + if (id == PERFLIB_REGISTRY_NAME_NOT_FOUND)
94 return -1;
95
96 PERF_DATA_BLOCK *pDataBlock = perflibGetPerformanceData(id);
100 - if(!pDataBlock) return -1;
97 + if (!pDataBlock)
98 + return -1;
99
100 do_thermal_zones(pDataBlock, update_every);
101
src/collectors/windows.plugin/perflib-web-service.c
+248 -256
@@ -118,8 +118,8 @@ void dict_web_service_insert_cb(const DICTIONARY_ITEM *item __maybe_unused, void
118 static DICTIONARY *web_services = NULL;
119
120 static void initialize(void) {
121 - web_services = dictionary_create_advanced(DICT_OPTION_DONT_OVERWRITE_VALUE |
122 - DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct web_service));
121 + web_services = dictionary_create_advanced(
122 + DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct web_service));
123
124 dictionary_register_insert_callback(web_services, dict_web_service_insert_cb, NULL);
125 }
@@ -127,18 +127,20 @@ static void initialize(void) {
127 static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
128 char id[RRD_ID_LENGTH_MAX + 1];
129 PERF_OBJECT_TYPE *pObjectType = perflibFindObjectTypeByName(pDataBlock, "Web Service");
130 - if(!pObjectType) return false;
130 + if (!pObjectType)
131 + return false;
132
133 PERF_INSTANCE_DEFINITION *pi = NULL;
133 - for(LONG i = 0; i < pObjectType->NumInstances ; i++) {
134 + for (LONG i = 0; i < pObjectType->NumInstances; i++) {
135 pi = perflibForEachInstance(pDataBlock, pObjectType, pi);
135 - if(!pi) break;
136 + if (!pi)
137 + break;
138
137 - if(!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
139 + if (!getInstanceName(pDataBlock, pObjectType, pi, windows_shared_buffer, sizeof(windows_shared_buffer)))
140 strncpyz(windows_shared_buffer, "[unknown]", sizeof(windows_shared_buffer) - 1);
141
142 // We are not ploting _Total here, because cloud will group the sites
141 - if(strcasecmp(windows_shared_buffer, "_Total") == 0) {
143 + if (strcasecmp(windows_shared_buffer, "_Total") == 0) {
144 continue;
145 }
146
@@ -149,45 +151,34 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
151 perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISSentBytesTotal)) {
152 if (!p->st_traffic) {
153 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_traffic", windows_shared_buffer);
152 - p->st_traffic = rrdset_create_localhost("iis"
153 - , id, NULL
154 - , "traffic"
155 - , "iis.website_traffic"
156 - , "Website traffic"
157 - , "bytes/s"
158 - , PLUGIN_WINDOWS_NAME
159 - , "PerflibWebService"
160 - , PRIO_WEBSITE_IIS_TRAFFIC
161 - , update_every
162 - , RRDSET_TYPE_AREA
163 - );
154 + p->st_traffic = rrdset_create_localhost(
155 + "iis",
156 + id,
157 + NULL,
158 + "traffic",
159 + "iis.website_traffic",
160 + "Website traffic",
161 + "bytes/s",
162 + PLUGIN_WINDOWS_NAME,
163 + "PerflibWebService",
164 + PRIO_WEBSITE_IIS_TRAFFIC,
165 + update_every,
166 + RRDSET_TYPE_AREA);
167
168 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_received_bytes_total", windows_shared_buffer);
166 - p->rd_traffic_received = rrddim_add(p->st_traffic,
167 - id,
168 - "received",
169 - 1,
170 - 1,
171 - RRD_ALGORITHM_INCREMENTAL);
169 + p->rd_traffic_received = rrddim_add(p->st_traffic, id, "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
170
171 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_sent_bytes_total", windows_shared_buffer);
174 - p->rd_traffic_sent = rrddim_add(p->st_traffic,
175 - id,
176 - "sent",
177 - -1,
178 - 1,
179 - RRD_ALGORITHM_INCREMENTAL);
172 + p->rd_traffic_sent = rrddim_add(p->st_traffic, id, "sent", -1, 1, RRD_ALGORITHM_INCREMENTAL);
173
174 rrdlabels_add(p->st_traffic->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
175 }
176
184 - rrddim_set_by_pointer(p->st_traffic,
185 - p->rd_traffic_received,
186 - (collected_number)p->IISReceivedBytesTotal.current.Data);
177 + rrddim_set_by_pointer(
178 + p->st_traffic, p->rd_traffic_received, (collected_number)p->IISReceivedBytesTotal.current.Data);
179
188 - rrddim_set_by_pointer(p->st_traffic,
189 - p->rd_traffic_sent,
190 - (collected_number)p->IISSentBytesTotal.current.Data);
180 + rrddim_set_by_pointer(
181 + p->st_traffic, p->rd_traffic_sent, (collected_number)p->IISSentBytesTotal.current.Data);
182
183 rrdset_done(p->st_traffic);
184 }
@@ -196,38 +187,34 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
187 perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISFilesSentTotal)) {
188 if (!p->st_file_transfer) {
189 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_ftp_file_transfer_rate", windows_shared_buffer);
199 - p->st_file_transfer = rrdset_create_localhost("iis"
200 - , id, NULL
201 - , "traffic"
202 - , "iis.website_ftp_file_transfer_rate"
203 - , "Website FTP file transfer rate"
204 - , "files/s"
205 - , PLUGIN_WINDOWS_NAME
206 - , "PerflibWebService"
207 - , PRIO_WEBSITE_IIS_FTP_FILE_TRANSFER_RATE
208 - , update_every
209 - , RRDSET_TYPE_LINE
210 - );
190 + p->st_file_transfer = rrdset_create_localhost(
191 + "iis",
192 + id,
193 + NULL,
194 + "traffic",
195 + "iis.website_ftp_file_transfer_rate",
196 + "Website FTP file transfer rate",
197 + "files/s",
198 + PLUGIN_WINDOWS_NAME,
199 + "PerflibWebService",
200 + PRIO_WEBSITE_IIS_FTP_FILE_TRANSFER_RATE,
201 + update_every,
202 + RRDSET_TYPE_LINE);
203
204 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_files_received_total", windows_shared_buffer);
213 - p->rd_files_received = rrddim_add(p->st_file_transfer, id, "received",
214 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
205 + p->rd_files_received = rrddim_add(p->st_file_transfer, id, "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
206
207 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_files_sent_total", windows_shared_buffer);
217 - p->rd_files_sent = rrddim_add(p->st_file_transfer, id, "sent",
218 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
208 + p->rd_files_sent = rrddim_add(p->st_file_transfer, id, "sent", 1, 1, RRD_ALGORITHM_INCREMENTAL);
209
220 - rrdlabels_add(p->st_file_transfer->rrdlabels, "website",
221 - windows_shared_buffer, RRDLABEL_SRC_AUTO);
210 + rrdlabels_add(p->st_file_transfer->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
211 }
212
224 - rrddim_set_by_pointer(p->st_file_transfer,
225 - p->rd_files_received,
226 - (collected_number)p->IISFilesReceivedTotal.current.Data);
213 + rrddim_set_by_pointer(
214 + p->st_file_transfer, p->rd_files_received, (collected_number)p->IISFilesReceivedTotal.current.Data);
215
228 - rrddim_set_by_pointer(p->st_file_transfer,
229 - p->rd_files_sent,
230 - (collected_number)p->IISFilesSentTotal.current.Data);
216 + rrddim_set_by_pointer(
217 + p->st_file_transfer, p->rd_files_sent, (collected_number)p->IISFilesSentTotal.current.Data);
218
219 rrdset_done(p->st_file_transfer);
220 }
@@ -235,29 +222,30 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
222 if (perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISCurrentConnections)) {
223 if (!p->st_curr_connections) {
224 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_active_connections_count", windows_shared_buffer);
238 - p->st_curr_connections = rrdset_create_localhost("iis"
239 - , id, NULL
240 - , "connections"
241 - , "iis.website_active_connections_count"
242 - , "Website active connections"
243 - , "connections"
244 - , PLUGIN_WINDOWS_NAME
245 - , "PerflibWebService1"
246 - , PRIO_WEBSITE_IIS_ACTIVE_CONNECTIONS_COUNT
247 - , update_every
248 - , RRDSET_TYPE_LINE
249 - );
225 + p->st_curr_connections = rrdset_create_localhost(
226 + "iis",
227 + id,
228 + NULL,
229 + "connections",
230 + "iis.website_active_connections_count",
231 + "Website active connections",
232 + "connections",
233 + PLUGIN_WINDOWS_NAME,
234 + "PerflibWebService1",
235 + PRIO_WEBSITE_IIS_ACTIVE_CONNECTIONS_COUNT,
236 + update_every,
237 + RRDSET_TYPE_LINE);
238
239 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_current_connections", windows_shared_buffer);
252 - p->rd_curr_connections = rrddim_add(p->st_curr_connections, id, "active",
253 - 1, 1, RRD_ALGORITHM_ABSOLUTE);
240 + p->rd_curr_connections = rrddim_add(p->st_curr_connections, id, "active", 1, 1, RRD_ALGORITHM_ABSOLUTE);
241
242 rrdlabels_add(p->st_curr_connections->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
243 }
244
258 - rrddim_set_by_pointer(p->st_curr_connections,
259 - p->rd_curr_connections,
260 - (collected_number)p->IISCurrentConnections.current.Data);
245 + rrddim_set_by_pointer(
246 + p->st_curr_connections,
247 + p->rd_curr_connections,
248 + (collected_number)p->IISCurrentConnections.current.Data);
249
250 rrdset_done(p->st_curr_connections);
251 }
@@ -266,30 +254,36 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
254 if (!p->st_connections_attemps) {
255 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_connection_attempts_rate", windows_shared_buffer);
256 netdata_fix_chart_name(id);
269 - p->st_connections_attemps = rrdset_create_localhost("iis"
270 - , id, NULL
271 - , "connections"
272 - , "iis.website_connection_attempts_rate"
273 - , "Website connections attempts"
274 - , "attempts/s"
275 - , PLUGIN_WINDOWS_NAME
276 - , "PerflibWebService"
277 - , PRIO_WEBSITE_IIS_CONNECTIONS_ATTEMP
278 - , update_every
279 - , RRDSET_TYPE_LINE
280 - );
281 -
282 - snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_connection_attempts_all_instances_total", windows_shared_buffer);
283 - p->rd_connections_attemps = rrddim_add(p->st_connections_attemps, id, "connection",
284 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
285 -
286 - rrdlabels_add(p->st_connections_attemps->rrdlabels, "website",
287 - windows_shared_buffer, RRDLABEL_SRC_AUTO);
257 + p->st_connections_attemps = rrdset_create_localhost(
258 + "iis",
259 + id,
260 + NULL,
261 + "connections",
262 + "iis.website_connection_attempts_rate",
263 + "Website connections attempts",
264 + "attempts/s",
265 + PLUGIN_WINDOWS_NAME,
266 + "PerflibWebService",
267 + PRIO_WEBSITE_IIS_CONNECTIONS_ATTEMP,
268 + update_every,
269 + RRDSET_TYPE_LINE);
270 +
271 + snprintfz(
272 + id,
273 + RRD_ID_LENGTH_MAX,
274 + "iis_website_%s_connection_attempts_all_instances_total",
275 + windows_shared_buffer);
276 + p->rd_connections_attemps =
277 + rrddim_add(p->st_connections_attemps, id, "connection", 1, 1, RRD_ALGORITHM_INCREMENTAL);
278 +
279 + rrdlabels_add(
280 + p->st_connections_attemps->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
281 }
282
290 - rrddim_set_by_pointer(p->st_connections_attemps,
291 - p->rd_connections_attemps,
292 - (collected_number)p->IISCurrentConnections.current.Data);
283 + rrddim_set_by_pointer(
284 + p->st_connections_attemps,
285 + p->rd_connections_attemps,
286 + (collected_number)p->IISCurrentConnections.current.Data);
287
288 rrdset_done(p->st_connections_attemps);
289 }
@@ -298,37 +292,37 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
292 perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISCurrentNonAnonymousUsers)) {
293 if (!p->st_user_count) {
294 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_users_count", windows_shared_buffer);
301 - p->st_user_count = rrdset_create_localhost("iis",
302 - id, NULL
303 - ,"requests"
304 - , "iis.website_users_count"
305 - , "Website users with pending requests"
306 - , "users"
307 - , PLUGIN_WINDOWS_NAME
308 - , "PerflibWebService"
309 - , PRIO_WEBSITE_IIS_USERS
310 - , update_every
311 - , RRDSET_TYPE_STACKED
312 - );
295 + p->st_user_count = rrdset_create_localhost(
296 + "iis",
297 + id,
298 + NULL,
299 + "requests",
300 + "iis.website_users_count",
301 + "Website users with pending requests",
302 + "users",
303 + PLUGIN_WINDOWS_NAME,
304 + "PerflibWebService",
305 + PRIO_WEBSITE_IIS_USERS,
306 + update_every,
307 + RRDSET_TYPE_STACKED);
308
309 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_current_anonymous_users", windows_shared_buffer);
315 - p->rd_user_anonymous = rrddim_add(p->st_user_count, id, "anonymous",
316 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
310 + p->rd_user_anonymous = rrddim_add(p->st_user_count, id, "anonymous", 1, 1, RRD_ALGORITHM_INCREMENTAL);
311
312 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_current_non_anonymous_users", windows_shared_buffer);
319 - p->rd_user_nonanonymous = rrddim_add(p->st_user_count, id, "non_anonymous",
320 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
313 + p->rd_user_nonanonymous =
314 + rrddim_add(p->st_user_count, id, "non_anonymous", 1, 1, RRD_ALGORITHM_INCREMENTAL);
315
316 rrdlabels_add(p->st_user_count->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
317 }
318
325 - rrddim_set_by_pointer(p->st_user_count,
326 - p->rd_user_anonymous,
327 - (collected_number)p->IISCurrentAnonymousUser.current.Data);
319 + rrddim_set_by_pointer(
320 + p->st_user_count, p->rd_user_anonymous, (collected_number)p->IISCurrentAnonymousUser.current.Data);
321
329 - rrddim_set_by_pointer(p->st_user_count,
330 - p->rd_user_nonanonymous,
331 - (collected_number)p->IISCurrentNonAnonymousUsers.current.Data);
322 + rrddim_set_by_pointer(
323 + p->st_user_count,
324 + p->rd_user_nonanonymous,
325 + (collected_number)p->IISCurrentNonAnonymousUsers.current.Data);
326
327 rrdset_done(p->st_user_count);
328 }
@@ -336,30 +330,33 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
330 if (perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISCurrentISAPIExtRequests)) {
331 if (!p->st_isapi_extension_request_count) {
332 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_isapi_extension_requests_count", windows_shared_buffer);
339 - p->st_isapi_extension_request_count = rrdset_create_localhost("iis"
340 - , id, NULL
341 - , "requests"
342 - , "iis.website_isapi_extension_requests_count"
343 - , "ISAPI extension requests"
344 - , "requests"
345 - , PLUGIN_WINDOWS_NAME
346 - , "PerflibWebService"
347 - , PRIO_WEBSITE_IIS_ISAPI_EXT_REQUEST_COUNT
348 - , update_every
349 - , RRDSET_TYPE_LINE
350 - );
351 -
352 - snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_current_isapi_extension_requests", windows_shared_buffer);
353 - p->rd_isapi_extension_request_count = rrddim_add(p->st_isapi_extension_request_count, id, "isapi",
354 - 1, 1, RRD_ALGORITHM_ABSOLUTE);
355 -
356 - rrdlabels_add(p->st_isapi_extension_request_count->rrdlabels, "website",
357 - windows_shared_buffer, RRDLABEL_SRC_AUTO);
333 + p->st_isapi_extension_request_count = rrdset_create_localhost(
334 + "iis",
335 + id,
336 + NULL,
337 + "requests",
338 + "iis.website_isapi_extension_requests_count",
339 + "ISAPI extension requests",
340 + "requests",
341 + PLUGIN_WINDOWS_NAME,
342 + "PerflibWebService",
343 + PRIO_WEBSITE_IIS_ISAPI_EXT_REQUEST_COUNT,
344 + update_every,
345 + RRDSET_TYPE_LINE);
346 +
347 + snprintfz(
348 + id, RRD_ID_LENGTH_MAX, "iis_website_%s_current_isapi_extension_requests", windows_shared_buffer);
349 + p->rd_isapi_extension_request_count =
350 + rrddim_add(p->st_isapi_extension_request_count, id, "isapi", 1, 1, RRD_ALGORITHM_ABSOLUTE);
351 +
352 + rrdlabels_add(
353 + p->st_isapi_extension_request_count->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
354 }
355
360 - rrddim_set_by_pointer(p->st_isapi_extension_request_count,
361 - p->rd_isapi_extension_request_count,
362 - (collected_number)p->IISCurrentISAPIExtRequests.current.Data);
356 + rrddim_set_by_pointer(
357 + p->st_isapi_extension_request_count,
358 + p->rd_isapi_extension_request_count,
359 + (collected_number)p->IISCurrentISAPIExtRequests.current.Data);
360
361 rrdset_done(p->st_isapi_extension_request_count);
362 }
@@ -367,30 +364,33 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
364 if (perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISIPAPIExtRequestsTotal)) {
365 if (!p->st_isapi_extension_request_rate) {
366 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_isapi_extension_requests_rate", windows_shared_buffer);
370 - p->st_isapi_extension_request_rate = rrdset_create_localhost("iis"
371 - , id, NULL
372 - , "requests"
373 - , "iis.website_isapi_extension_requests_rate"
374 - , "Website extensions request"
375 - , "requests/s"
376 - , PLUGIN_WINDOWS_NAME
377 - , "PerflibWebService"
378 - , PRIO_WEBSITE_IIS_ISAPI_EXT_REQUEST_RATE
379 - , update_every
380 - , RRDSET_TYPE_LINE
381 - );
382 -
383 - snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_isapi_extension_requests_total", windows_shared_buffer);
384 - p->rd_isapi_extension_request_rate = rrddim_add(p->st_isapi_extension_request_rate, id, "isapi",
385 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
386 -
387 - rrdlabels_add(p->st_isapi_extension_request_rate->rrdlabels, "website",
388 - windows_shared_buffer, RRDLABEL_SRC_AUTO);
367 + p->st_isapi_extension_request_rate = rrdset_create_localhost(
368 + "iis",
369 + id,
370 + NULL,
371 + "requests",
372 + "iis.website_isapi_extension_requests_rate",
373 + "Website extensions request",
374 + "requests/s",
375 + PLUGIN_WINDOWS_NAME,
376 + "PerflibWebService",
377 + PRIO_WEBSITE_IIS_ISAPI_EXT_REQUEST_RATE,
378 + update_every,
379 + RRDSET_TYPE_LINE);
380 +
381 + snprintfz(
382 + id, RRD_ID_LENGTH_MAX, "iis_website_%s_isapi_extension_requests_total", windows_shared_buffer);
383 + p->rd_isapi_extension_request_rate =
384 + rrddim_add(p->st_isapi_extension_request_rate, id, "isapi", 1, 1, RRD_ALGORITHM_INCREMENTAL);
385 +
386 + rrdlabels_add(
387 + p->st_isapi_extension_request_rate->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
388 }
389
391 - rrddim_set_by_pointer(p->st_isapi_extension_request_rate,
392 - p->rd_isapi_extension_request_rate,
393 - (collected_number)p->IISIPAPIExtRequestsTotal.current.Data);
390 + rrddim_set_by_pointer(
391 + p->st_isapi_extension_request_rate,
392 + p->rd_isapi_extension_request_rate,
393 + (collected_number)p->IISIPAPIExtRequestsTotal.current.Data);
394
395 rrdset_done(p->st_isapi_extension_request_rate);
396 }
@@ -399,37 +399,36 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
399 perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISNotFoundErrorsTotal)) {
400 if (!p->st_error_rate) {
401 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_errors_rate", windows_shared_buffer);
402 - p->st_error_rate = rrdset_create_localhost("iis",
403 - id, NULL
404 - ,"requests"
405 - , "iis.website_errors_rate"
406 - , "Website errors"
407 - , "errors/s"
408 - , PLUGIN_WINDOWS_NAME
409 - , "PerflibWebService"
410 - , PRIO_WEBSITE_IIS_USERS
411 - , update_every
412 - , RRDSET_TYPE_STACKED
413 - );
402 + p->st_error_rate = rrdset_create_localhost(
403 + "iis",
404 + id,
405 + NULL,
406 + "requests",
407 + "iis.website_errors_rate",
408 + "Website errors",
409 + "errors/s",
410 + PLUGIN_WINDOWS_NAME,
411 + "PerflibWebService",
412 + PRIO_WEBSITE_IIS_USERS,
413 + update_every,
414 + RRDSET_TYPE_STACKED);
415
416 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_locked_errors_total", windows_shared_buffer);
416 - p->rd_error_rate_locked = rrddim_add(p->st_error_rate, id, "document_locked",
417 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
417 + p->rd_error_rate_locked =
418 + rrddim_add(p->st_error_rate, id, "document_locked", 1, 1, RRD_ALGORITHM_INCREMENTAL);
419
420 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_not_found_errors_total", windows_shared_buffer);
420 - p->rd_error_rate_not_found = rrddim_add(p->st_error_rate, id, "document_not_found",
421 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
421 + p->rd_error_rate_not_found =
422 + rrddim_add(p->st_error_rate, id, "document_not_found", 1, 1, RRD_ALGORITHM_INCREMENTAL);
423
424 rrdlabels_add(p->st_error_rate->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
425 }
426
426 - rrddim_set_by_pointer(p->st_error_rate,
427 - p->rd_error_rate_locked,
428 - (collected_number)p->IISLockedErrorsTotal.current.Data);
427 + rrddim_set_by_pointer(
428 + p->st_error_rate, p->rd_error_rate_locked, (collected_number)p->IISLockedErrorsTotal.current.Data);
429
430 - rrddim_set_by_pointer(p->st_error_rate,
431 - p->rd_error_rate_not_found,
432 - (collected_number)p->IISNotFoundErrorsTotal.current.Data);
430 + rrddim_set_by_pointer(
431 + p->st_error_rate, p->rd_error_rate_not_found, (collected_number)p->IISNotFoundErrorsTotal.current.Data);
432
433 rrdset_done(p->st_error_rate);
434 }
@@ -437,30 +436,28 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
436 if (perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISLogonAttemptsTotal)) {
437 if (!p->st_logon_attemps) {
438 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_logon_attempts_rate", windows_shared_buffer);
440 - p->st_logon_attemps = rrdset_create_localhost("iis"
441 - , id, NULL
442 - , "logon"
443 - , "iis.website_logon_attempts_rate"
444 - , "Website logon attempts"
445 - , "attempts/s"
446 - , PLUGIN_WINDOWS_NAME
447 - , "PerflibWebService"
448 - , PRIO_WEBSITE_IIS_LOGON_ATTEMPTS
449 - , update_every
450 - , RRDSET_TYPE_LINE
451 - );
439 + p->st_logon_attemps = rrdset_create_localhost(
440 + "iis",
441 + id,
442 + NULL,
443 + "logon",
444 + "iis.website_logon_attempts_rate",
445 + "Website logon attempts",
446 + "attempts/s",
447 + PLUGIN_WINDOWS_NAME,
448 + "PerflibWebService",
449 + PRIO_WEBSITE_IIS_LOGON_ATTEMPTS,
450 + update_every,
451 + RRDSET_TYPE_LINE);
452
453 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_logon_attempts_total", windows_shared_buffer);
454 - p->rd_logon_attemps = rrddim_add(p->st_logon_attemps, id, "logon",
455 - 1, 1, RRD_ALGORITHM_INCREMENTAL);
454 + p->rd_logon_attemps = rrddim_add(p->st_logon_attemps, id, "logon", 1, 1, RRD_ALGORITHM_INCREMENTAL);
455
457 - rrdlabels_add(p->st_logon_attemps->rrdlabels, "website",
458 - windows_shared_buffer, RRDLABEL_SRC_AUTO);
456 + rrdlabels_add(p->st_logon_attemps->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
457 }
458
461 - rrddim_set_by_pointer(p->st_logon_attemps,
462 - p->rd_logon_attemps,
463 - (collected_number)p->IISLogonAttemptsTotal.current.Data);
459 + rrddim_set_by_pointer(
460 + p->st_logon_attemps, p->rd_logon_attemps, (collected_number)p->IISLogonAttemptsTotal.current.Data);
461
462 rrdset_done(p->st_logon_attemps);
463 }
@@ -468,30 +465,28 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
465 if (perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISUptime)) {
466 if (!p->st_service_uptime) {
467 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_uptime", windows_shared_buffer);
471 - p->st_service_uptime = rrdset_create_localhost("iis"
472 - , id, NULL
473 - , "uptime"
474 - , "iis.website_uptime"
475 - , "Website uptime"
476 - , "seconds"
477 - , PLUGIN_WINDOWS_NAME
478 - , "PerflibWebService"
479 - , PRIO_WEBSITE_IIS_UPTIME
480 - , update_every
481 - , RRDSET_TYPE_LINE
482 - );
468 + p->st_service_uptime = rrdset_create_localhost(
469 + "iis",
470 + id,
471 + NULL,
472 + "uptime",
473 + "iis.website_uptime",
474 + "Website uptime",
475 + "seconds",
476 + PLUGIN_WINDOWS_NAME,
477 + "PerflibWebService",
478 + PRIO_WEBSITE_IIS_UPTIME,
479 + update_every,
480 + RRDSET_TYPE_LINE);
481
482 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_service_uptime", windows_shared_buffer);
485 - p->rd_service_uptime = rrddim_add(p->st_service_uptime, id, "uptime",
486 - 1, 1, RRD_ALGORITHM_ABSOLUTE);
483 + p->rd_service_uptime = rrddim_add(p->st_service_uptime, id, "uptime", 1, 1, RRD_ALGORITHM_ABSOLUTE);
484
488 - rrdlabels_add(p->st_service_uptime->rrdlabels, "website",
489 - windows_shared_buffer, RRDLABEL_SRC_AUTO);
485 + rrdlabels_add(p->st_service_uptime->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
486 }
487
492 - rrddim_set_by_pointer(p->st_service_uptime,
493 - p->rd_service_uptime,
494 - (collected_number)p->IISUptime.current.Data);
488 + rrddim_set_by_pointer(
489 + p->st_service_uptime, p->rd_service_uptime, (collected_number)p->IISUptime.current.Data);
490
491 rrdset_done(p->st_service_uptime);
492 }
@@ -514,39 +509,35 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
509 perflibGetInstanceCounter(pDataBlock, pObjectType, pi, &p->IISRequestsOther)) {
510 if (!p->st_request_rate) {
511 snprintfz(id, RRD_ID_LENGTH_MAX, "website_%s_requests_rate", windows_shared_buffer);
517 - p->st_request_rate = rrdset_create_localhost("iis"
518 - , id, NULL
519 - , "requests"
520 - , "iis.website_requests_rate"
521 - , "Website requests rate"
522 - , "requests/s"
523 - , PLUGIN_WINDOWS_NAME
524 - , "PerflibWebService"
525 - , PRIO_WEBSITE_IIS_REQUESTS_RATE
526 - , update_every
527 - , RRDSET_TYPE_LINE
528 - );
512 + p->st_request_rate = rrdset_create_localhost(
513 + "iis",
514 + id,
515 + NULL,
516 + "requests",
517 + "iis.website_requests_rate",
518 + "Website requests rate",
519 + "requests/s",
520 + PLUGIN_WINDOWS_NAME,
521 + "PerflibWebService",
522 + PRIO_WEBSITE_IIS_REQUESTS_RATE,
523 + update_every,
524 + RRDSET_TYPE_LINE);
525
526 snprintfz(id, RRD_ID_LENGTH_MAX, "iis_website_%s_requests_total", windows_shared_buffer);
531 - p->rd_request_rate = rrddim_add(p->st_request_rate, id, "requests",
532 - 1, 1, RRD_ALGORITHM_ABSOLUTE);
527 + p->rd_request_rate = rrddim_add(p->st_request_rate, id, "requests", 1, 1, RRD_ALGORITHM_ABSOLUTE);
528
534 - rrdlabels_add(p->st_request_rate->rrdlabels, "website",
535 - windows_shared_buffer, RRDLABEL_SRC_AUTO);
529 + rrdlabels_add(p->st_request_rate->rrdlabels, "website", windows_shared_buffer, RRDLABEL_SRC_AUTO);
530 }
531
538 - uint64_t requests = p->IISRequestsOptions.current.Data + p->IISRequestsGet.current.Data +
539 - p->IISRequestsPost.current.Data + p->IISRequestsHead.current.Data +
540 - p->IISRequestsPut.current.Data + p->IISRequestsDelete.current.Data +
541 - p->IISRequestsTrace.current.Data + p->IISRequestsMove.current.Data +
542 - p->IISRequestsCopy.current.Data + p->IISRequestsMkcol.current.Data +
543 - p->IISRequestsPropfind.current.Data + p->IISRequestsProppatch.current.Data +
544 - p->IISRequestsSearch.current.Data + p->IISRequestsLock.current.Data +
545 - p->IISRequestsUnlock.current.Data + p->IISRequestsOther.current.Data;
532 + uint64_t requests =
533 + p->IISRequestsOptions.current.Data + p->IISRequestsGet.current.Data + p->IISRequestsPost.current.Data +
534 + p->IISRequestsHead.current.Data + p->IISRequestsPut.current.Data + p->IISRequestsDelete.current.Data +
535 + p->IISRequestsTrace.current.Data + p->IISRequestsMove.current.Data + p->IISRequestsCopy.current.Data +
536 + p->IISRequestsMkcol.current.Data + p->IISRequestsPropfind.current.Data +
537 + p->IISRequestsProppatch.current.Data + p->IISRequestsSearch.current.Data +
538 + p->IISRequestsLock.current.Data + p->IISRequestsUnlock.current.Data + p->IISRequestsOther.current.Data;
539
547 - rrddim_set_by_pointer(p->st_request_rate,
548 - p->rd_request_rate,
549 - (collected_number)requests);
540 + rrddim_set_by_pointer(p->st_request_rate, p->rd_request_rate, (collected_number)requests);
541
542 rrdset_done(p->st_request_rate);
543 }
@@ -558,17 +549,18 @@ static bool do_web_services(PERF_DATA_BLOCK *pDataBlock, int update_every) {
549 int do_PerflibWebService(int update_every, usec_t dt __maybe_unused) {
550 static bool initialized = false;
551
561 - if(unlikely(!initialized)) {
552 + if (unlikely(!initialized)) {
553 initialize();
554 initialized = true;
555 }
556
557 DWORD id = RegistryFindIDByName("Web Service");
567 - if(id == PERFLIB_REGISTRY_NAME_NOT_FOUND)
558 + if (id == PERFLIB_REGISTRY_NAME_NOT_FOUND)
559 return -1;
560
561 PERF_DATA_BLOCK *pDataBlock = perflibGetPerformanceData(id);
571 - if(!pDataBlock) return -1;
562 + if (!pDataBlock)
563 + return -1;
564
565 do_web_services(pDataBlock, update_every);
566