X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fnginx.c;h=08c24f9a5b8fb93e6d2a3d0eb00e4bd4818b4f0d;hb=0a8741b9061f8df4a78a448c021612db06e17425;hp=16ce3d5f6ba33d5207b0cbf44f0e0673ea539925;hpb=b847e8ff2fd928813397466a941947c8fce66d66;p=collectd.git diff --git a/src/nginx.c b/src/nginx.c index 16ce3d5f..08c24f9a 100644 --- a/src/nginx.c +++ b/src/nginx.c @@ -139,7 +139,7 @@ static int init (void) #else static char credentials[1024]; int status = ssnprintf (credentials, sizeof (credentials), - "%s:%s", user, pass == NULL ? "" : pass); + "%s:%s", user, pass == NULL ? "" : pass); if ((status < 0) || ((size_t) status >= sizeof (credentials))) { ERROR ("nginx plugin: Credentials would have been truncated."); @@ -210,10 +210,8 @@ static void submit (const char *type, const char *inst, long long value) return; vl.values = values; - vl.values_len = 1; - sstrncpy (vl.host, hostname_g, sizeof (vl.host)); + vl.values_len = STATIC_ARRAY_SIZE (values); sstrncpy (vl.plugin, "nginx", sizeof (vl.plugin)); - sstrncpy (vl.plugin_instance, "", sizeof (vl.plugin_instance)); sstrncpy (vl.type, type, sizeof (vl.type)); if (inst != NULL) @@ -258,39 +256,43 @@ static int nginx_read (void) /* * Active connections: 291 * server accepts handled requests - * 16630948 16630948 31070465 + * 101059015 100422216 347910649 * Reading: 6 Writing: 179 Waiting: 106 */ for (int i = 0; i < lines_num; i++) { fields_num = strsplit (lines[i], fields, - (sizeof (fields) / sizeof (fields[0]))); + (sizeof (fields) / sizeof (fields[0]))); if (fields_num == 3) { if ((strcmp (fields[0], "Active") == 0) - && (strcmp (fields[1], "connections:") == 0)) + && (strcmp (fields[1], "connections:") == 0)) { - submit ("nginx_connections", "active", atoll (fields[2])); + submit ("nginx_connections", "active", atoll (fields[2])); } else if ((atoll (fields[0]) != 0) - && (atoll (fields[1]) != 0) - && (atoll (fields[2]) != 0)) + && (atoll (fields[1]) != 0) + && (atoll (fields[2]) != 0)) { - submit ("connections", "accepted", atoll (fields[0])); - submit ("connections", "handled", atoll (fields[1])); - submit ("nginx_requests", NULL, atoll (fields[2])); + submit ("connections", "accepted", atoll (fields[0])); + /* TODO: The legacy metric "handled", which is the sum of "accepted" and + * "failed", is reported for backwards compatibility only. Remove in the + * next major version. */ + submit ("connections", "handled", atoll (fields[1])); + submit ("connections", "failed", (atoll(fields[0]) - atoll (fields[1]))); + submit ("nginx_requests", NULL, atoll (fields[2])); } } else if (fields_num == 6) { if ((strcmp (fields[0], "Reading:") == 0) - && (strcmp (fields[2], "Writing:") == 0) - && (strcmp (fields[4], "Waiting:") == 0)) + && (strcmp (fields[2], "Writing:") == 0) + && (strcmp (fields[4], "Waiting:") == 0)) { - submit ("nginx_connections", "reading", atoll (fields[1])); - submit ("nginx_connections", "writing", atoll (fields[3])); - submit ("nginx_connections", "waiting", atoll (fields[5])); + submit ("nginx_connections", "reading", atoll (fields[1])); + submit ("nginx_connections", "writing", atoll (fields[3])); + submit ("nginx_connections", "waiting", atoll (fields[5])); } } }