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