Format code - MSSQL (windows.plugin) (#21256)
thiagoftsm committed
Nov 3, 2025 at 12:22 UTC
17f5199bf44eee03b9b80bfe0f95ec51c70c8bcb
1 file changed
+259
-230
src/collectors/windows.plugin/perflib-mssql.c
+259
-230
@@ -379,31 +379,41 @@ void dict_mssql_fill_instance_transactions(struct mssql_db_instance *mdi)
379
380
SQLCHAR query[sizeof(NETDATA_QUERY_TRANSACTIONS_PER_INSTANCE_MASK) + NETDATA_MAX_INSTANCE_OBJECT + 1];
381
snprintfz(
382
- (char *)query,
383
- sizeof(NETDATA_QUERY_TRANSACTIONS_PER_INSTANCE_MASK) + NETDATA_MAX_INSTANCE_OBJECT,
384
- NETDATA_QUERY_TRANSACTIONS_PER_INSTANCE_MASK,
385
- mdi->parent->instanceID);
382
+ (char *)query,
383
+ sizeof(NETDATA_QUERY_TRANSACTIONS_PER_INSTANCE_MASK) + NETDATA_MAX_INSTANCE_OBJECT,
384
+ NETDATA_QUERY_TRANSACTIONS_PER_INSTANCE_MASK,
385
+ mdi->parent->instanceID);
386
387
SQLRETURN ret = SQLExecDirect(mdi->parent->conn->dbInstanceTransactionSTMT, (SQLCHAR *)query, SQL_NTS);
388
if (ret != SQL_SUCCESS) {
389
mdi->collecting_data = false;
390
netdata_MSSQL_error(
391
- SQL_HANDLE_STMT, mdi->parent->conn->dbInstanceTransactionSTMT, NETDATA_MSSQL_ODBC_QUERY, mdi->parent->instanceID);
391
+ SQL_HANDLE_STMT,
392
+ mdi->parent->conn->dbInstanceTransactionSTMT,
393
+ NETDATA_MSSQL_ODBC_QUERY,
394
+ mdi->parent->instanceID);
395
goto enditransactions;
396
}
397
398
ret = SQLBindCol(
396
- mdi->parent->conn->dbInstanceTransactionSTMT, 1, SQL_C_CHAR, object_name, sizeof(object_name), &col_object_len);
399
+ mdi->parent->conn->dbInstanceTransactionSTMT, 1, SQL_C_CHAR, object_name, sizeof(object_name), &col_object_len);
400
if (ret != SQL_SUCCESS) {
401
netdata_MSSQL_error(
399
- SQL_HANDLE_STMT, mdi->parent->conn->dbInstanceTransactionSTMT, NETDATA_MSSQL_ODBC_PREPARE, mdi->parent->instanceID);
402
+ SQL_HANDLE_STMT,
403
+ mdi->parent->conn->dbInstanceTransactionSTMT,
404
+ NETDATA_MSSQL_ODBC_PREPARE,
405
+ mdi->parent->instanceID);
406
goto enditransactions;
407
}
408
403
- ret = SQLBindCol(mdi->parent->conn->dbInstanceTransactionSTMT, 2, SQL_C_LONG, &value, sizeof(value), &col_value_len);
409
+ ret =
410
+ SQLBindCol(mdi->parent->conn->dbInstanceTransactionSTMT, 2, SQL_C_LONG, &value, sizeof(value), &col_value_len);
411
if (ret != SQL_SUCCESS) {
412
netdata_MSSQL_error(
406
- SQL_HANDLE_STMT, mdi->parent->conn->dbInstanceTransactionSTMT, NETDATA_MSSQL_ODBC_PREPARE, mdi->parent->instanceID);
413
+ SQL_HANDLE_STMT,
414
+ mdi->parent->conn->dbInstanceTransactionSTMT,
415
+ NETDATA_MSSQL_ODBC_PREPARE,
416
+ mdi->parent->instanceID);
417
goto enditransactions;
418
}
419
@@ -423,32 +433,48 @@ void dict_mssql_fill_instance_transactions(struct mssql_db_instance *mdi)
433
object_name, NETDATA_MSSQL_BUFFER_PAGE_READS_METRIC, sizeof(NETDATA_MSSQL_BUFFER_PAGE_READS_METRIC) - 1))
434
mdi->MSSQLBufferPageReads.current.Data = (ULONGLONG)value;
435
else if (!strncmp(
426
- object_name, NETDATA_MSSQL_BUFFER_PAGE_WRITES_METRIC, sizeof(NETDATA_MSSQL_BUFFER_PAGE_WRITES_METRIC) - 1))
436
+ object_name,
437
+ NETDATA_MSSQL_BUFFER_PAGE_WRITES_METRIC,
438
+ sizeof(NETDATA_MSSQL_BUFFER_PAGE_WRITES_METRIC) - 1))
439
mdi->MSSQLBufferPageWrites.current.Data = (ULONGLONG)value;
440
else if (!strncmp(
429
- object_name, NETDATA_MSSQL_BUFFER_PAGE_CACHE_METRIC, sizeof(NETDATA_MSSQL_BUFFER_PAGE_CACHE_METRIC) - 1))
441
+ object_name,
442
+ NETDATA_MSSQL_BUFFER_PAGE_CACHE_METRIC,
443
+ sizeof(NETDATA_MSSQL_BUFFER_PAGE_CACHE_METRIC) - 1))
444
mdi->MSSQLBufferCacheHits.current.Data = (ULONGLONG)value;
445
else if (!strncmp(
432
- object_name, NETDATA_MSSQL_BUFFER_CHECKPOINT_METRIC, sizeof(NETDATA_MSSQL_BUFFER_CHECKPOINT_METRIC) - 1))
446
+ object_name,
447
+ NETDATA_MSSQL_BUFFER_CHECKPOINT_METRIC,
448
+ sizeof(NETDATA_MSSQL_BUFFER_CHECKPOINT_METRIC) - 1))
449
mdi->MSSQLBufferCheckpointPages.current.Data = (ULONGLONG)value;
450
else if (!strncmp(
435
- object_name, NETDATA_MSSQL_BUFFER_PAGE_LIFE_METRIC, sizeof(NETDATA_MSSQL_BUFFER_PAGE_LIFE_METRIC) - 1))
451
+ object_name,
452
+ NETDATA_MSSQL_BUFFER_PAGE_LIFE_METRIC,
453
+ sizeof(NETDATA_MSSQL_BUFFER_PAGE_LIFE_METRIC) - 1))
454
mdi->MSSQLBufferPageLifeExpectancy.current.Data = (ULONGLONG)value;
455
else if (!strncmp(
438
- object_name, NETDATA_MSSQL_BUFFER_LAZY_WRITES_METRIC, sizeof(NETDATA_MSSQL_BUFFER_LAZY_WRITES_METRIC) - 1))
456
+ object_name,
457
+ NETDATA_MSSQL_BUFFER_LAZY_WRITES_METRIC,
458
+ sizeof(NETDATA_MSSQL_BUFFER_LAZY_WRITES_METRIC) - 1))
459
mdi->MSSQLBufferLazyWrite.current.Data = (ULONGLONG)value;
460
else if (!strncmp(
441
- object_name, NETDATA_MSSQL_BUFFER_PAGE_LOOKUPS_METRIC, sizeof(NETDATA_MSSQL_BUFFER_PAGE_LOOKUPS_METRIC) - 1))
461
+ object_name,
462
+ NETDATA_MSSQL_BUFFER_PAGE_LOOKUPS_METRIC,
463
+ sizeof(NETDATA_MSSQL_BUFFER_PAGE_LOOKUPS_METRIC) - 1))
464
mdi->MSSQLBufferPageLookups.current.Data = (ULONGLONG)value;
465
else if (!strncmp(
444
- object_name, NETDATA_MSSQL_STATS_COMPILATIONS_METRIC, sizeof(NETDATA_MSSQL_STATS_COMPILATIONS_METRIC) - 1))
466
+ object_name,
467
+ NETDATA_MSSQL_STATS_COMPILATIONS_METRIC,
468
+ sizeof(NETDATA_MSSQL_STATS_COMPILATIONS_METRIC) - 1))
469
mdi->MSSQLCompilations.current.Data = (ULONGLONG)value;
470
else if (!strncmp(
447
- object_name, NETDATA_MSSQL_STATS_RECOMPILATIONS_METRIC, sizeof(NETDATA_MSSQL_STATS_RECOMPILATIONS_METRIC) - 1))
471
+ object_name,
472
+ NETDATA_MSSQL_STATS_RECOMPILATIONS_METRIC,
473
+ sizeof(NETDATA_MSSQL_STATS_RECOMPILATIONS_METRIC) - 1))
474
mdi->MSSQLRecompilations.current.Data = (ULONGLONG)value;
475
} while (true);
476
451
- enditransactions:
477
+enditransactions:
478
netdata_MSSQL_release_results(mdi->parent->conn->dbInstanceTransactionSTMT);
479
}
480
@@ -1065,7 +1091,7 @@ static void initialize_mssql_objects(struct mssql_instance *mi, const char *inst
1091
if (mi->conn)
1092
mi->conn->is_sqlexpress = true;
1093
} else {
1068
- char *express = (mi->conn && mi->conn->is_sqlexpress) ? "SQLEXPRESS:": "";
1094
+ char *express = (mi->conn && mi->conn->is_sqlexpress) ? "SQLEXPRESS:" : "";
1095
snprintfz(prefix, sizeof(prefix) - 1, "MSSQL$%s%s:", express, instance);
1096
}
1097
@@ -1225,7 +1251,11 @@ static void netdata_read_config_options()
1251
const char *instance = inicfg_get(&netdata_config, section_name, "instance", NULL);
1252
int additional_instances = (int)inicfg_get_number(&netdata_config, section_name, "additional instances", 0);
1253
if (!instance || strlen(instance) > NETDATA_MAX_INSTANCE_OBJECT) {
1228
- nd_log(NDLS_COLLECTORS, NDLP_ERR, "You must specify a valid 'instance' name to collect data from database in section %s.", section_name);
1254
+ nd_log(
1255
+ NDLS_COLLECTORS,
1256
+ NDLP_ERR,
1257
+ "You must specify a valid 'instance' name to collect data from database in section %s.",
1258
+ section_name);
1259
continue;
1260
}
1261
@@ -1311,7 +1341,7 @@ void dict_mssql_insert_cb(const DICTIONARY_ITEM *item __maybe_unused, void *valu
1341
1342
if (!mi->sysjobs) {
1343
mi->sysjobs = dictionary_create_advanced(
1314
- DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct mssql_db_jobs));
1344
+ DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE, NULL, sizeof(struct mssql_db_jobs));
1345
dictionary_register_insert_callback(mi->sysjobs, dict_mssql_insert_jobs_cb, NULL);
1346
}
1347
@@ -1450,7 +1480,8 @@ static int initialize(int update_every)
1480
mssql_fill_dictionary(update_every);
1481
1482
if (create_thread)
1453
- mssql_queries_thread = nd_thread_create("mssql_queries", NETDATA_THREAD_OPTION_DEFAULT, netdata_mssql_queries, &update_every);
1483
+ mssql_queries_thread =
1484
+ nd_thread_create("mssql_queries", NETDATA_THREAD_OPTION_DEFAULT, netdata_mssql_queries, &update_every);
1485
1486
return 0;
1487
}
@@ -2010,30 +2041,30 @@ void mssql_buffman_iops_chart(struct mssql_db_instance *mdi, struct mssql_instan
2041
snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_bufman_iops", mi->instanceID);
2042
netdata_fix_chart_name(id);
2043
mdi->st_buff_page_iops = rrdset_create_localhost(
2013
- "mssql",
2014
- id,
2015
- NULL,
2016
- "buffer cache",
2017
- "mssql.instance_bufman_iops",
2018
- "Number of pages input and output",
2019
- "pages/s",
2020
- PLUGIN_WINDOWS_NAME,
2021
- "PerflibMSSQL",
2022
- PRIO_MSSQL_BUFF_MAN_IOPS,
2023
- mi->update_every,
2024
- RRDSET_TYPE_LINE);
2044
+ "mssql",
2045
+ id,
2046
+ NULL,
2047
+ "buffer cache",
2048
+ "mssql.instance_bufman_iops",
2049
+ "Number of pages input and output",
2050
+ "pages/s",
2051
+ PLUGIN_WINDOWS_NAME,
2052
+ "PerflibMSSQL",
2053
+ PRIO_MSSQL_BUFF_MAN_IOPS,
2054
+ mi->update_every,
2055
+ RRDSET_TYPE_LINE);
2056
2057
mdi->rd_buff_page_reads = rrddim_add(mdi->st_buff_page_iops, "read", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2058
mdi->rd_buff_page_writes =
2028
- rrddim_add(mdi->st_buff_page_iops, "written", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
2059
+ rrddim_add(mdi->st_buff_page_iops, "written", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
2060
2061
rrdlabels_add(mdi->st_buff_page_iops->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2062
}
2063
2064
rrddim_set_by_pointer(
2034
- mdi->st_buff_page_iops, mdi->rd_buff_page_reads, (collected_number)mdi->MSSQLBufferPageReads.current.Data);
2065
+ mdi->st_buff_page_iops, mdi->rd_buff_page_reads, (collected_number)mdi->MSSQLBufferPageReads.current.Data);
2066
rrddim_set_by_pointer(
2036
- mdi->st_buff_page_iops, mdi->rd_buff_page_writes, (collected_number)mdi->MSSQLBufferPageWrites.current.Data);
2067
+ mdi->st_buff_page_iops, mdi->rd_buff_page_writes, (collected_number)mdi->MSSQLBufferPageWrites.current.Data);
2068
2069
rrdset_done(mdi->st_buff_page_iops);
2070
}
@@ -2045,27 +2076,26 @@ void mssql_buffman_cache_hit_ratio_chart(struct mssql_db_instance *mdi, struct m
2076
snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_cache_hit_ratio", mi->instanceID);
2077
netdata_fix_chart_name(id);
2078
mdi->st_buff_cache_hits = rrdset_create_localhost(
2048
- "mssql",
2049
- id,
2050
- NULL,
2051
- "buffer cache",
2052
- "mssql.instance_cache_hit_ratio",
2053
- "Buffer Cache hit ratio",
2054
- "percentage",
2055
- PLUGIN_WINDOWS_NAME,
2056
- "PerflibMSSQL",
2057
- PRIO_MSSQL_BUFF_CACHE_HIT_RATIO,
2058
- mi->update_every,
2059
- RRDSET_TYPE_LINE);
2079
+ "mssql",
2080
+ id,
2081
+ NULL,
2082
+ "buffer cache",
2083
+ "mssql.instance_cache_hit_ratio",
2084
+ "Buffer Cache hit ratio",
2085
+ "percentage",
2086
+ PLUGIN_WINDOWS_NAME,
2087
+ "PerflibMSSQL",
2088
+ PRIO_MSSQL_BUFF_CACHE_HIT_RATIO,
2089
+ mi->update_every,
2090
+ RRDSET_TYPE_LINE);
2091
2061
- mdi->rd_buff_cache_hits =
2062
- rrddim_add(mdi->st_buff_cache_hits, "hit_ratio", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2092
+ mdi->rd_buff_cache_hits = rrddim_add(mdi->st_buff_cache_hits, "hit_ratio", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2093
2094
rrdlabels_add(mdi->st_buff_cache_hits->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2095
}
2096
2097
rrddim_set_by_pointer(
2068
- mdi->st_buff_cache_hits, mdi->rd_buff_cache_hits, (collected_number)mdi->MSSQLBufferCacheHits.current.Data);
2098
+ mdi->st_buff_cache_hits, mdi->rd_buff_cache_hits, (collected_number)mdi->MSSQLBufferCacheHits.current.Data);
2099
rrdset_done(mdi->st_buff_cache_hits);
2100
}
2101
@@ -2076,29 +2106,29 @@ void mssql_buffman_checkpoints_pages_chart(struct mssql_db_instance *mdi, struct
2106
snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_bufman_checkpoint_pages", mi->instanceID);
2107
netdata_fix_chart_name(id);
2108
mdi->st_buff_checkpoint_pages = rrdset_create_localhost(
2079
- "mssql",
2080
- id,
2081
- NULL,
2082
- "buffer cache",
2083
- "mssql.instance_bufman_checkpoint_pages",
2084
- "Flushed pages",
2085
- "pages/s",
2086
- PLUGIN_WINDOWS_NAME,
2087
- "PerflibMSSQL",
2088
- PRIO_MSSQL_BUFF_CHECKPOINT_PAGES,
2089
- mi->update_every,
2090
- RRDSET_TYPE_LINE);
2109
+ "mssql",
2110
+ id,
2111
+ NULL,
2112
+ "buffer cache",
2113
+ "mssql.instance_bufman_checkpoint_pages",
2114
+ "Flushed pages",
2115
+ "pages/s",
2116
+ PLUGIN_WINDOWS_NAME,
2117
+ "PerflibMSSQL",
2118
+ PRIO_MSSQL_BUFF_CHECKPOINT_PAGES,
2119
+ mi->update_every,
2120
+ RRDSET_TYPE_LINE);
2121
2122
mdi->rd_buff_checkpoint_pages =
2093
- rrddim_add(mdi->st_buff_checkpoint_pages, "log", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2123
+ rrddim_add(mdi->st_buff_checkpoint_pages, "log", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2124
2125
rrdlabels_add(mdi->st_buff_checkpoint_pages->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2126
}
2127
2128
rrddim_set_by_pointer(
2099
- mdi->st_buff_checkpoint_pages,
2100
- mdi->rd_buff_checkpoint_pages,
2101
- (collected_number)mdi->MSSQLBufferCheckpointPages.current.Data);
2129
+ mdi->st_buff_checkpoint_pages,
2130
+ mdi->rd_buff_checkpoint_pages,
2131
+ (collected_number)mdi->MSSQLBufferCheckpointPages.current.Data);
2132
rrdset_done(mdi->st_buff_checkpoint_pages);
2133
}
2134
@@ -2109,30 +2139,30 @@ void mssql_buffman_page_life_expectancy_chart(struct mssql_db_instance *mdi, str
2139
snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_bufman_page_life_expectancy", mi->instanceID);
2140
netdata_fix_chart_name(id);
2141
mdi->st_buff_cache_page_life_expectancy = rrdset_create_localhost(
2112
- "mssql",
2113
- id,
2114
- NULL,
2115
- "buffer cache",
2116
- "mssql.instance_bufman_page_life_expectancy",
2117
- "Page life expectancy",
2118
- "seconds",
2119
- PLUGIN_WINDOWS_NAME,
2120
- "PerflibMSSQL",
2121
- PRIO_MSSQL_BUFF_PAGE_LIFE_EXPECTANCY,
2122
- mi->update_every,
2123
- RRDSET_TYPE_LINE);
2142
+ "mssql",
2143
+ id,
2144
+ NULL,
2145
+ "buffer cache",
2146
+ "mssql.instance_bufman_page_life_expectancy",
2147
+ "Page life expectancy",
2148
+ "seconds",
2149
+ PLUGIN_WINDOWS_NAME,
2150
+ "PerflibMSSQL",
2151
+ PRIO_MSSQL_BUFF_PAGE_LIFE_EXPECTANCY,
2152
+ mi->update_every,
2153
+ RRDSET_TYPE_LINE);
2154
2125
- mdi->rd_buff_cache_page_life_expectancy = rrddim_add(
2126
- mdi->st_buff_cache_page_life_expectancy, "life_expectancy", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2155
+ mdi->rd_buff_cache_page_life_expectancy =
2156
+ rrddim_add(mdi->st_buff_cache_page_life_expectancy, "life_expectancy", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2157
2158
rrdlabels_add(
2129
- mdi->st_buff_cache_page_life_expectancy->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2159
+ mdi->st_buff_cache_page_life_expectancy->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2160
}
2161
2162
rrddim_set_by_pointer(
2133
- mdi->st_buff_cache_page_life_expectancy,
2134
- mdi->rd_buff_cache_page_life_expectancy,
2135
- (collected_number)mdi->MSSQLBufferPageLifeExpectancy.current.Data);
2163
+ mdi->st_buff_cache_page_life_expectancy,
2164
+ mdi->rd_buff_cache_page_life_expectancy,
2165
+ (collected_number)mdi->MSSQLBufferPageLifeExpectancy.current.Data);
2166
rrdset_done(mdi->st_buff_cache_page_life_expectancy);
2167
}
2168
@@ -2143,94 +2173,90 @@ void mssql_buffman_lazy_write_chart(struct mssql_db_instance *mdi, struct mssql_
2173
snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_bufman_lazy_write", mi->instanceID);
2174
netdata_fix_chart_name(id);
2175
mdi->st_buff_lazy_write = rrdset_create_localhost(
2146
- "mssql",
2147
- id,
2148
- NULL,
2149
- "buffer cache",
2150
- "mssql.instance_bufman_lazy_write",
2151
- "Buffers written by buffer manager's lazy writer",
2152
- "writes/s",
2153
- PLUGIN_WINDOWS_NAME,
2154
- "PerflibMSSQL",
2155
- PRIO_MSSQL_BUFF_LAZY_WRITE,
2156
- mi->update_every,
2157
- RRDSET_TYPE_LINE);
2176
+ "mssql",
2177
+ id,
2178
+ NULL,
2179
+ "buffer cache",
2180
+ "mssql.instance_bufman_lazy_write",
2181
+ "Buffers written by buffer manager's lazy writer",
2182
+ "writes/s",
2183
+ PLUGIN_WINDOWS_NAME,
2184
+ "PerflibMSSQL",
2185
+ PRIO_MSSQL_BUFF_LAZY_WRITE,
2186
+ mi->update_every,
2187
+ RRDSET_TYPE_LINE);
2188
2159
- mdi->rd_buff_lazy_write = rrddim_add(
2160
- mdi->st_buff_lazy_write, "writes", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2189
+ mdi->rd_buff_lazy_write = rrddim_add(mdi->st_buff_lazy_write, "writes", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2190
2162
- rrdlabels_add(
2163
- mdi->st_buff_lazy_write->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2191
+ rrdlabels_add(mdi->st_buff_lazy_write->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2192
}
2193
2194
rrddim_set_by_pointer(
2167
- mdi->st_buff_lazy_write,
2168
- mdi->rd_buff_lazy_write,
2169
- (collected_number)mdi->MSSQLBufferLazyWrite.current.Data);
2195
+ mdi->st_buff_lazy_write, mdi->rd_buff_lazy_write, (collected_number)mdi->MSSQLBufferLazyWrite.current.Data);
2196
rrdset_done(mdi->st_buff_lazy_write);
2197
}
2198
2173
-void mssql_buffman_page_lookups_chart(struct mssql_db_instance *mdi, struct mssql_instance *mi) {
2199
+void mssql_buffman_page_lookups_chart(struct mssql_db_instance *mdi, struct mssql_instance *mi)
2200
+{
2201
if (!mdi->st_buff_page_lookups) {
2202
char id[RRD_ID_LENGTH_MAX + 1];
2203
snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_bufman_page_lookups", mi->instanceID);
2204
netdata_fix_chart_name(id);
2205
mdi->st_buff_page_lookups = rrdset_create_localhost(
2179
- "mssql",
2180
- id,
2181
- NULL,
2182
- "buffer cache",
2183
- "mssql.instance_bufman_page_lookups",
2184
- "Requests to find a page in the buffer pool.",
2185
- "lookups/s",
2186
- PLUGIN_WINDOWS_NAME,
2187
- "PerflibMSSQL",
2188
- PRIO_MSSQL_BUFF_PAGE_LOOKUPS,
2189
- mi->update_every,
2190
- RRDSET_TYPE_LINE);
2206
+ "mssql",
2207
+ id,
2208
+ NULL,
2209
+ "buffer cache",
2210
+ "mssql.instance_bufman_page_lookups",
2211
+ "Requests to find a page in the buffer pool.",
2212
+ "lookups/s",
2213
+ PLUGIN_WINDOWS_NAME,
2214
+ "PerflibMSSQL",
2215
+ PRIO_MSSQL_BUFF_PAGE_LOOKUPS,
2216
+ mi->update_every,
2217
+ RRDSET_TYPE_LINE);
2218
2192
- mdi->rd_buff_page_lookups = rrddim_add(
2193
- mdi->st_buff_page_lookups, "lookups", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2219
+ mdi->rd_buff_page_lookups =
2220
+ rrddim_add(mdi->st_buff_page_lookups, "lookups", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2221
2195
- rrdlabels_add(
2196
- mdi->st_buff_page_lookups->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2222
+ rrdlabels_add(mdi->st_buff_page_lookups->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2223
}
2224
2225
rrddim_set_by_pointer(
2200
- mdi->st_buff_page_lookups,
2201
- mdi->rd_buff_page_lookups,
2202
- (collected_number) mdi->MSSQLBufferPageLookups.current.Data);
2226
+ mdi->st_buff_page_lookups,
2227
+ mdi->rd_buff_page_lookups,
2228
+ (collected_number)mdi->MSSQLBufferPageLookups.current.Data);
2229
rrdset_done(mdi->st_buff_page_lookups);
2230
}
2231
2206
-static void netdata_mssql_compilations(struct mssql_db_instance *mdi, struct mssql_instance *mi) {
2232
+static void netdata_mssql_compilations(struct mssql_db_instance *mdi, struct mssql_instance *mi)
2233
+{
2234
if (!mdi->st_stats_compilation) {
2235
char id[RRD_ID_LENGTH_MAX + 1];
2236
snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_sqlstats_sql_compilations", mi->instanceID);
2237
netdata_fix_chart_name(id);
2238
mdi->st_stats_compilation = rrdset_create_localhost(
2212
- "mssql",
2213
- id,
2214
- NULL,
2215
- "sql activity",
2216
- "mssql.instance_sqlstats_sql_compilations",
2217
- "SQL compilations",
2218
- "compilations/s",
2219
- PLUGIN_WINDOWS_NAME,
2220
- "PerflibMSSQL",
2221
- PRIO_MSSQL_STATS_COMPILATIONS,
2222
- mi->update_every,
2223
- RRDSET_TYPE_LINE);
2239
+ "mssql",
2240
+ id,
2241
+ NULL,
2242
+ "sql activity",
2243
+ "mssql.instance_sqlstats_sql_compilations",
2244
+ "SQL compilations",
2245
+ "compilations/s",
2246
+ PLUGIN_WINDOWS_NAME,
2247
+ "PerflibMSSQL",
2248
+ PRIO_MSSQL_STATS_COMPILATIONS,
2249
+ mi->update_every,
2250
+ RRDSET_TYPE_LINE);
2251
2252
mdi->rd_stats_compilation =
2226
- rrddim_add(mdi->st_stats_compilation, "compilations", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2253
+ rrddim_add(mdi->st_stats_compilation, "compilations", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2254
2255
rrdlabels_add(mdi->st_stats_compilation->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2256
}
2257
2258
rrddim_set_by_pointer(
2232
- mdi->st_stats_compilation, mdi->rd_stats_compilation,
2233
- (collected_number) mdi->MSSQLCompilations.current.Data);
2259
+ mdi->st_stats_compilation, mdi->rd_stats_compilation, (collected_number)mdi->MSSQLCompilations.current.Data);
2260
rrdset_done(mdi->st_stats_compilation);
2261
}
2262
@@ -2241,31 +2267,34 @@ static void netdata_mssql_recompilations(struct mssql_db_instance *mdi, struct m
2267
snprintfz(id, RRD_ID_LENGTH_MAX, "instance_%s_sqlstats_sql_recompilations", mi->instanceID);
2268
netdata_fix_chart_name(id);
2269
mdi->st_stats_recompiles = rrdset_create_localhost(
2244
- "mssql",
2245
- id,
2246
- NULL,
2247
- "sql activity",
2248
- "mssql.instance_sqlstats_sql_recompilations",
2249
- "SQL re-compilations",
2250
- "recompiles/s",
2251
- PLUGIN_WINDOWS_NAME,
2252
- "PerflibMSSQL",
2253
- PRIO_MSSQL_STATS_RECOMPILATIONS,
2254
- mi->update_every,
2255
- RRDSET_TYPE_LINE);
2270
+ "mssql",
2271
+ id,
2272
+ NULL,
2273
+ "sql activity",
2274
+ "mssql.instance_sqlstats_sql_recompilations",
2275
+ "SQL re-compilations",
2276
+ "recompiles/s",
2277
+ PLUGIN_WINDOWS_NAME,
2278
+ "PerflibMSSQL",
2279
+ PRIO_MSSQL_STATS_RECOMPILATIONS,
2280
+ mi->update_every,
2281
+ RRDSET_TYPE_LINE);
2282
2283
mdi->rd_stats_recompiles =
2258
- rrddim_add(mdi->st_stats_recompiles, "recompiles", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2284
+ rrddim_add(mdi->st_stats_recompiles, "recompiles", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
2285
2286
rrdlabels_add(mdi->st_stats_recompiles->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2287
}
2288
2289
rrddim_set_by_pointer(
2264
- mdi->st_stats_recompiles, mdi->rd_stats_recompiles, (collected_number)mdi->MSSQLRecompilations.current.Data);
2290
+ mdi->st_stats_recompiles, mdi->rd_stats_recompiles, (collected_number)mdi->MSSQLRecompilations.current.Data);
2291
rrdset_done(mdi->st_stats_recompiles);
2292
}
2293
2268
-int dict_mssql_buffman_stats_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused)
2294
+int dict_mssql_buffman_stats_charts_cb(
2295
+ const DICTIONARY_ITEM *item __maybe_unused,
2296
+ void *value,
2297
+ void *data __maybe_unused)
2298
{
2299
struct mssql_db_instance *mdi = value;
2300
struct mssql_instance *mi = data;
@@ -2298,37 +2327,36 @@ static void netdata_mssql_jobs_status(struct mssql_db_jobs *mdj, struct mssql_in
2327
snprintfz(id, RRD_ID_LENGTH_MAX, "job_%s_instance_%s_status", job, mi->instanceID);
2328
netdata_fix_chart_name(id);
2329
mdj->st_status = rrdset_create_localhost(
2301
- "mssql",
2302
- id,
2303
- NULL,
2304
- "jobs",
2305
- "mssql.instance_jobs_status",
2306
- "Jobs running",
2307
- "status",
2308
- PLUGIN_WINDOWS_NAME,
2309
- "PerflibMSSQL",
2310
- PRIO_MSSQL_DATABASE_JOBS_STATUS,
2311
- mi->update_every,
2312
- RRDSET_TYPE_LINE);
2330
+ "mssql",
2331
+ id,
2332
+ NULL,
2333
+ "jobs",
2334
+ "mssql.instance_jobs_status",
2335
+ "Jobs running",
2336
+ "status",
2337
+ PLUGIN_WINDOWS_NAME,
2338
+ "PerflibMSSQL",
2339
+ PRIO_MSSQL_DATABASE_JOBS_STATUS,
2340
+ mi->update_every,
2341
+ RRDSET_TYPE_LINE);
2342
2314
- mdj->rd_status_enabled =
2315
- rrddim_add(mdj->st_status, "enabled", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2343
+ mdj->rd_status_enabled = rrddim_add(mdj->st_status, "enabled", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2344
2317
- mdj->rd_status_disabled =
2318
- rrddim_add(mdj->st_status, "disabled", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2345
+ mdj->rd_status_disabled = rrddim_add(mdj->st_status, "disabled", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2346
2347
rrdlabels_add(mdj->st_status->rrdlabels, "mssql_instance", mi->instanceID, RRDLABEL_SRC_AUTO);
2348
rrdlabels_add(mdj->st_status->rrdlabels, "job_name", job, RRDLABEL_SRC_AUTO);
2349
}
2350
2351
rrddim_set_by_pointer(
2325
- mdj->st_status, mdj->rd_status_enabled, (collected_number)(mdj->MSSQLJOBState.current.Data == 1));
2352
+ mdj->st_status, mdj->rd_status_enabled, (collected_number)(mdj->MSSQLJOBState.current.Data == 1));
2353
rrddim_set_by_pointer(
2327
- mdj->st_status, mdj->rd_status_disabled, (collected_number)(mdj->MSSQLJOBState.current.Data == 0));
2354
+ mdj->st_status, mdj->rd_status_disabled, (collected_number)(mdj->MSSQLJOBState.current.Data == 0));
2355
rrdset_done(mdj->st_status);
2356
}
2357
2331
-int dict_mssql_sysjobs_chart_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused) {
2358
+int dict_mssql_sysjobs_chart_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused)
2359
+{
2360
const char *job = dictionary_acquired_item_name((DICTIONARY_ITEM *)item);
2361
struct mssql_db_jobs *mdj = value;
2362
struct mssql_instance *mi = data;
@@ -2595,18 +2623,18 @@ static void mssql_is_readonly_chart(struct mssql_db_instance *mdi, const char *d
2623
snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_readonly", db, mdi->parent->instanceID);
2624
netdata_fix_chart_name(id);
2625
mdi->st_db_readonly = rrdset_create_localhost(
2598
- "mssql",
2599
- id,
2600
- NULL,
2601
- "locks",
2602
- "mssql.database_readonly",
2603
- "Current database write status.",
2604
- "status",
2605
- PLUGIN_WINDOWS_NAME,
2606
- "PerflibMSSQL",
2607
- PRIO_MSSQL_DATABASE_READONLY,
2608
- update_every,
2609
- RRDSET_TYPE_LINE);
2626
+ "mssql",
2627
+ id,
2628
+ NULL,
2629
+ "locks",
2630
+ "mssql.database_readonly",
2631
+ "Current database write status.",
2632
+ "status",
2633
+ PLUGIN_WINDOWS_NAME,
2634
+ "PerflibMSSQL",
2635
+ PRIO_MSSQL_DATABASE_READONLY,
2636
+ update_every,
2637
+ RRDSET_TYPE_LINE);
2638
2639
rrdlabels_add(mdi->st_db_readonly->rrdlabels, "mssql_instance", mdi->parent->instanceID, RRDLABEL_SRC_AUTO);
2640
rrdlabels_add(mdi->st_db_readonly->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
@@ -2616,11 +2644,10 @@ static void mssql_is_readonly_chart(struct mssql_db_instance *mdi, const char *d
2644
}
2645
2646
rrddim_set_by_pointer(
2619
- mdi->st_db_readonly, mdi->rd_db_readonly_no, (collected_number)mdi->MSSQLDBIsReadonly.current.Data);
2647
+ mdi->st_db_readonly, mdi->rd_db_readonly_no, (collected_number)mdi->MSSQLDBIsReadonly.current.Data);
2648
2649
collected_number opposite = (mdi->MSSQLDBIsReadonly.current.Data) ? 0 : 1;
2622
- rrddim_set_by_pointer(
2623
- mdi->st_db_readonly, mdi->rd_db_readonly_yes, (collected_number)opposite);
2650
+ rrddim_set_by_pointer(mdi->st_db_readonly, mdi->rd_db_readonly_yes, (collected_number)opposite);
2651
2652
rrdset_done(mdi->st_db_readonly);
2653
}
@@ -2632,18 +2659,18 @@ static void mssql_db_states_chart(struct mssql_db_instance *mdi, const char *db,
2659
snprintfz(id, RRD_ID_LENGTH_MAX, "db_%s_instance_%s_state", db, mdi->parent->instanceID);
2660
netdata_fix_chart_name(id);
2661
mdi->st_db_state = rrdset_create_localhost(
2635
- "mssql",
2636
- id,
2637
- NULL,
2638
- "locks",
2639
- "mssql.database_state",
2640
- "Current database state.",
2641
- "status",
2642
- PLUGIN_WINDOWS_NAME,
2643
- "PerflibMSSQL",
2644
- PRIO_MSSQL_DATABASE_STATE,
2645
- update_every,
2646
- RRDSET_TYPE_LINE);
2662
+ "mssql",
2663
+ id,
2664
+ NULL,
2665
+ "locks",
2666
+ "mssql.database_state",
2667
+ "Current database state.",
2668
+ "status",
2669
+ PLUGIN_WINDOWS_NAME,
2670
+ "PerflibMSSQL",
2671
+ PRIO_MSSQL_DATABASE_STATE,
2672
+ update_every,
2673
+ RRDSET_TYPE_LINE);
2674
2675
rrdlabels_add(mdi->st_db_state->rrdlabels, "mssql_instance", mdi->parent->instanceID, RRDLABEL_SRC_AUTO);
2676
rrdlabels_add(mdi->st_db_state->rrdlabels, "database", db, RRDLABEL_SRC_AUTO);
@@ -2659,7 +2686,8 @@ static void mssql_db_states_chart(struct mssql_db_instance *mdi, const char *db,
2686
2687
static void mssql_db_state_chart_loop(struct mssql_db_instance *mdi, const char *db, int update_every)
2688
{
2662
- collected_number set_value = (mdi->MSSQLDBState.current.Data < 5) ? (collected_number) mdi->MSSQLDBState.current.Data : 5;
2689
+ collected_number set_value =
2690
+ (mdi->MSSQLDBState.current.Data < 5) ? (collected_number)mdi->MSSQLDBState.current.Data : 5;
2691
mssql_db_states_chart(mdi, db, update_every);
2692
for (collected_number i; i < NETDATA_DB_STATES; i++) {
2693
rrddim_set_by_pointer(mdi->st_db_state, mdi->rd_db_state[i], i == set_value);
@@ -2816,19 +2844,19 @@ int dict_mssql_databases_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, v
2844
int *update_every = data;
2845
2846
void (*transaction_chart[])(struct mssql_db_instance *, const char *, int) = {
2819
- mssql_data_file_size_chart,
2820
- mssql_transactions_chart,
2821
- mssql_database_backup_restore_chart,
2822
- mssql_database_log_flushed_chart,
2823
- mssql_database_log_flushes_chart,
2824
- mssql_active_transactions_chart,
2825
- mssql_write_transactions_chart,
2826
- mssql_lockwait_chart,
2827
- mssql_deadlock_chart,
2828
- mssql_is_readonly_chart,
2829
- mssql_db_state_chart_loop,
2830
- mssql_lock_timeout_chart,
2831
- mssql_lock_request_chart,
2847
+ mssql_data_file_size_chart,
2848
+ mssql_transactions_chart,
2849
+ mssql_database_backup_restore_chart,
2850
+ mssql_database_log_flushed_chart,
2851
+ mssql_database_log_flushes_chart,
2852
+ mssql_active_transactions_chart,
2853
+ mssql_write_transactions_chart,
2854
+ mssql_lockwait_chart,
2855
+ mssql_deadlock_chart,
2856
+ mssql_is_readonly_chart,
2857
+ mssql_db_state_chart_loop,
2858
+ mssql_lock_timeout_chart,
2859
+ mssql_lock_request_chart,
2860
2861
// Last function pointer must be NULL
2862
NULL};
@@ -3035,23 +3063,24 @@ int dict_mssql_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value
3063
int *update_every = data;
3064
3065
static void (*doMSSQL[])(PERF_DATA_BLOCK *, struct mssql_instance *, int) = {
3038
- do_mssql_general_stats,
3039
- do_mssql_errors,
3040
- do_mssql_memory_mgr,
3041
- do_mssql_statistics_perflib,
3042
- do_mssql_access_methods,
3066
+ do_mssql_general_stats,
3067
+ do_mssql_errors,
3068
+ do_mssql_memory_mgr,
3069
+ do_mssql_statistics_perflib,
3070
+ do_mssql_access_methods,
3071
+
3072
+ do_mssql_databases,
3073
+ do_mssql_locks,
3074
+ do_mssql_waits,
3075
+ do_mssql_bufferman_stats_sql,
3076
+ do_mssql_job_status_sql,
3077
3044
- do_mssql_databases,
3045
- do_mssql_locks,
3046
- do_mssql_waits,
3047
- do_mssql_bufferman_stats_sql,
3048
- do_mssql_job_status_sql,
3049
-
3050
- NULL};
3078
+ NULL};
3079
3080
DWORD i;
3081
PERF_DATA_BLOCK *pDataBlock;
3054
- static bool collect_perflib[NETDATA_MSSQL_METRICS_END] = {true, true, true, true, true, true, true, true, true, true};
3082
+ static bool collect_perflib[NETDATA_MSSQL_METRICS_END] = {
3083
+ true, true, true, true, true, true, true, true, true, true};
3084
for (i = 0; i < NETDATA_MSSQL_ACCESS_METHODS; i++) {
3085
if (!collect_perflib[i])
3086
continue;
@@ -3067,7 +3096,7 @@ int dict_mssql_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value
3096
return 1;
3097
3098
for (i = NETDATA_MSSQL_DATABASE; doMSSQL[i]; i++) {
3070
- pDataBlock = (collect_perflib[i]) ? netdata_mssql_get_perf_data_block(collect_perflib, mi, i): NULL;
3099
+ pDataBlock = (collect_perflib[i]) ? netdata_mssql_get_perf_data_block(collect_perflib, mi, i) : NULL;
3100
3101
doMSSQL[i](pDataBlock, mi, *update_every);
3102
}