summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlya Mashchenko <ilya@netdata.cloud>2019-12-20 12:57:23 +0300
committerGitHub <noreply@github.com>2019-12-20 12:57:23 +0300
commit91a8e3bb23b879e8312f848ffef560299bcbe43b (patch)
tree9de059b967113c399b7a3537d72765583dd47e5d
parentb5296e124442308600c5b38737ae7b80f47d2e19 (diff)
installer: include go.d.plugin version v0.13.0 (#7574)
* web/gui: add squidlog to the dashboard_info.js * web/gui: dashboard_info.js auto format * web/gui: dashboard_info.js minor * packaging: update go.d.plugin version to 0.13.0 * packaging: update go.d.checksums * web/gui: squidlog.type_requests minor in dashboard_info.js * web/gui: squidlog.type_requests minor in dashboard_info.js
-rw-r--r--packaging/go.d.checksums32
-rw-r--r--packaging/go.d.version2
-rw-r--r--web/gui/dashboard_info.js249
3 files changed, 210 insertions, 73 deletions
diff --git a/packaging/go.d.checksums b/packaging/go.d.checksums
index 14f1dd7f35..d04ca0e536 100644
--- a/packaging/go.d.checksums
+++ b/packaging/go.d.checksums
@@ -1,16 +1,16 @@
-5c7fbeb4321daa1ba480caf3b052b9f11431e75f1128183101f90a51c065fbb2 *config.tar.gz
-a7b8eba795e8dbd64c6849596fc1b7a551dcd69b50adc0cc5b9ace98df5077a5 *go.d.plugin-v0.12.0.darwin-386.tar.gz
-9f7caa226da6902fba7d48ab468185ac4d83bc2ec1fc69006ef4237c350cfcce *go.d.plugin-v0.12.0.darwin-amd64.tar.gz
-50c4f749ba1964bec37174586e441de57e2d3b054f1b87486101233e9460dbae *go.d.plugin-v0.12.0.freebsd-386.tar.gz
-f54861033b07c849375161b027c40177ea761c3f7e6ec04e0018e65f47744966 *go.d.plugin-v0.12.0.freebsd-amd64.tar.gz
-96d633709fde81b6e1107a40981246e1cd777667eced31937756133dc32771f7 *go.d.plugin-v0.12.0.freebsd-arm.tar.gz
-8abf079757c9b8cab5361a5aec67338ee67668e2f08957d0669edbff8ec56b91 *go.d.plugin-v0.12.0.linux-386.tar.gz
-8eb6a11009c122d735785ad4a6612ee197c490234146d7b4a64141e6a8e47140 *go.d.plugin-v0.12.0.linux-amd64.tar.gz
-8d9b730f98732dbe9dc23edecb4711eace00ac442e3e36d7d901ebfa26f527ad *go.d.plugin-v0.12.0.linux-arm.tar.gz
-b351ff5edd8728d8e16de55faf06a15f35bc110bd7cc4a1979a6c35e690eeb1b *go.d.plugin-v0.12.0.linux-arm64.tar.gz
-2385827ab86a4adc8d988b2da43d568a8a9a063e40ff7f19c811aa677e94b6ad *go.d.plugin-v0.12.0.linux-mips.tar.gz
-88264491f351c2917e8ea629af5dd3610c3de4964ff5eaa7f4e929640b7712fb *go.d.plugin-v0.12.0.linux-mips64.tar.gz
-66cc4e86ab0b5ab7b21389a3f48cffd5ada26f373b14bc70ff2eba90ee4e7e4a *go.d.plugin-v0.12.0.linux-mips64le.tar.gz
-85736839fe519dd3a8aed01acd28591b31e5fa711cb8f1a050b2e485bb20019a *go.d.plugin-v0.12.0.linux-mipsle.tar.gz
-07e5ab676dc51c4c76b34bd08eeec5aa236711f7634d0bbe0abeeb5c8697d12e *go.d.plugin-v0.12.0.linux-ppc64.tar.gz
-9f0b1ffc60e3d8e11cf4baa5e5e092e13549a3316d90895ac97599ed3627bdfe *go.d.plugin-v0.12.0.linux-ppc64le.tar.gz
+40dc0bfa08cebbd4e1c927bf219c7d7fd912405eb45f56bcabba32323e82510f *config.tar.gz
+ac49ce759af01206c48551b78fbeda655bd5099657a70b2c218be9e366aefe24 *go.d.plugin-v0.13.0.darwin-386.tar.gz
+31c734a11edd794726f1e3181ecce10a5146e4d21e8e3068c3a7a2936ab4687d *go.d.plugin-v0.13.0.darwin-amd64.tar.gz
+d9a6e711d5df52162cad26e0d2dc4818f5a2633166df14b894bc3d5216669d87 *go.d.plugin-v0.13.0.freebsd-386.tar.gz
+dc7cbf0f55f5605359d26a1fdbe704d16a8a0171a51ae6760cd6b430feeb369b *go.d.plugin-v0.13.0.freebsd-amd64.tar.gz
+ee65ef178a9785dc54697bcb174359d851e94e8c92d1baf9e92b47229acbbe66 *go.d.plugin-v0.13.0.freebsd-arm.tar.gz
+eb7b383846f138ac29ef3649b3b0668ff0bba3958c374a4801024e7e3211c025 *go.d.plugin-v0.13.0.linux-386.tar.gz
+8cbc21b8482bd21f077f9e32cf13dfdd2b2e3434f516b38cf5e0fba7ead58cd4 *go.d.plugin-v0.13.0.linux-amd64.tar.gz
+a3a09fb5cc292ae949bc6cd06601e4a37a48d8c3617f1c7bb70db5e2cb01cf2e *go.d.plugin-v0.13.0.linux-arm.tar.gz
+704b73797fd12532e01995def1b88b25a67f7e580cd74519c33e3934aa146814 *go.d.plugin-v0.13.0.linux-arm64.tar.gz
+ccad5f25bb637dbb743d7cc74f06e0668669c15becf71d3cf979dd0872dbbefd *go.d.plugin-v0.13.0.linux-mips.tar.gz
+2b5e300d23323aff8f4e1dcfcff4cd5a128b4ca42ba83d05e2df76d0e0aa7849 *go.d.plugin-v0.13.0.linux-mips64.tar.gz
+6224420b61d66d9de9399ec97622dd03acba51cd4f1c008779dd17aa96848ba8 *go.d.plugin-v0.13.0.linux-mips64le.tar.gz
+acf6c134b39afd9008fceef0a7447fe1b59a5146ef62674d168477446efa093a *go.d.plugin-v0.13.0.linux-mipsle.tar.gz
+160f0b873546b4c9063bb4d61febafd99532f42e9612845aa21239a0b6d10b59 *go.d.plugin-v0.13.0.linux-ppc64.tar.gz
+2754e41d03ca8e37b6272dd6a66f5052d222bd5a0d14d2c70d991f17dd555adc *go.d.plugin-v0.13.0.linux-ppc64le.tar.gz
diff --git a/packaging/go.d.version b/packaging/go.d.version
index 87a1cf595a..6345c2168f 100644
--- a/packaging/go.d.version
+++ b/packaging/go.d.version
@@ -1 +1 @@
-v0.12.0
+v0.13.0
diff --git a/web/gui/dashboard_info.js b/web/gui/dashboard_info.js
index 5598b0ec2f..7032074b7e 100644
--- a/web/gui/dashboard_info.js
+++ b/web/gui/dashboard_info.js
@@ -54,7 +54,7 @@ netdataDashboard.menu = {
title: 'Networking Stack',
icon: '<i class="fas fa-cloud"></i>',
info: function (os) {
- if(os === "linux")
+ if (os === "linux")
return 'Metrics for the networking stack of the system. These metrics are collected from <code>/proc/net/netstat</code>, apply to both IPv4 and IPv6 traffic and are related to operation of the kernel networking stack.';
else
return 'Metrics for the networking stack of the system.';
@@ -517,7 +517,7 @@ netdataDashboard.menu = {
icon: '<i class="fas fa-folder-open"></i>',
info: 'Provides <b><a href="https://hadoop.apache.org/docs/r3.2.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html">Hadoop Distributed File System</a></b> performance statistics. Module collects metrics over <code>Java Management Extensions</code> through the web interface of an <code>HDFS</code> daemon.'
},
-
+
'am2320': {
title: 'AM2320 Sensor',
icon: '<i class="fas fa-thermometer-half"></i>',
@@ -528,6 +528,12 @@ netdataDashboard.menu = {
title: 'ScaleIO',
icon: '<i class="fas fa-database"></i>',
info: 'Performance and health statistics for various ScaleIO components. Data collected via VxFlex OS Gateway REST API.'
+ },
+
+ 'squidlog': {
+ title: 'Squid log',
+ icon: '<i class="fas fa-file-alt"></i>',
+ info: undefined
}
};
@@ -711,7 +717,7 @@ var cgroupMemLimitIsSet = 0;
netdataDashboard.context = {
'system.cpu': {
info: function (os) {
- void(os);
+ void (os);
return 'Total CPU utilization (all cores). 100% here means there is no CPU idle time at all. You can get per core usage at the <a href="#menu_cpu">CPUs</a> section and per application usage at the <a href="#menu_apps">Applications Monitoring</a> section.'
+ netdataDashboard.sparkline('<br/>Keep an eye on <b>iowait</b> ', 'system.cpu', 'iowait', '%', '. If it is constantly high, your disks are a bottleneck and they slow your system down.')
+ netdataDashboard.sparkline('<br/>An important metric worth monitoring, is <b>softirq</b> ', 'system.cpu', 'softirq', '%', '. A constantly high percentage of softirq may indicate network driver issues.');
@@ -878,7 +884,7 @@ netdataDashboard.context = {
'mem.ksm_ratios': {
heads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-gauge-max-value="100"'
+ ' data-chart-library="gauge"'
@@ -1111,7 +1117,7 @@ netdataDashboard.context = {
'tc.qos': {
heads: [
function (os, id) {
- void(os);
+ void (os);
if (id.match(/.*-ifb$/))
return netdataDashboard.gaugeChart('Inbound', '12%', '', '#5555AA');
@@ -1127,46 +1133,42 @@ netdataDashboard.context = {
'net.net': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
if (id.match(/^cgroup_.*/)) {
var iface;
try {
iface = ' ' + id.substring(id.lastIndexOf('.net_') + 5, id.length);
- }
- catch (e) {
+ } catch (e) {
iface = '';
}
return netdataDashboard.gaugeChart('Received' + iface, '12%', 'received');
- }
- else
+ } else
return '';
},
function (os, id) {
- void(os);
+ void (os);
if (id.match(/^cgroup_.*/)) {
var iface;
try {
iface = ' ' + id.substring(id.lastIndexOf('.net_') + 5, id.length);
- }
- catch (e) {
+ } catch (e) {
iface = '';
}
return netdataDashboard.gaugeChart('Sent' + iface, '12%', 'sent');
- }
- else
+ } else
return '';
}
],
heads: [
function (os, id) {
- void(os);
+ void (os);
if (!id.match(/^cgroup_.*/))
return netdataDashboard.gaugeChart('Received', '12%', 'received');
else
return '';
},
function (os, id) {
- void(os);
+ void (os);
if (!id.match(/^cgroup_.*/))
return netdataDashboard.gaugeChart('Sent', '12%', 'sent');
else
@@ -1418,7 +1420,7 @@ netdataDashboard.context = {
'apache.workers': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="busy"'
+ ' data-append-options="percentage"'
@@ -1479,7 +1481,7 @@ netdataDashboard.context = {
'lighttpd.workers': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="busy"'
+ ' data-append-options="percentage"'
@@ -1570,7 +1572,7 @@ netdataDashboard.context = {
info: 'Number of (connected) RetroShare friends.',
mainheads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="peers_connected"'
+ ' data-append-options="friends"'
@@ -1610,7 +1612,7 @@ netdataDashboard.context = {
valueRange: "[0, null]",
mainheads: [
function (os, id) {
- void(os);
+ void (os);
cgroupCPULimitIsSet = 1;
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="used"'
@@ -1632,7 +1634,7 @@ netdataDashboard.context = {
'cgroup.cpu': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
if (cgroupCPULimitIsSet === 0) {
return '<div data-netdata="' + id + '"'
+ ' data-chart-library="gauge"'
@@ -1645,8 +1647,7 @@ netdataDashboard.context = {
+ ' data-points="CHART_DURATION"'
+ ' data-colors="' + NETDATA.colors[4] + '"'
+ ' role="application"></div>';
- }
- else
+ } else
return '';
}
]
@@ -1655,7 +1656,7 @@ netdataDashboard.context = {
'cgroup.mem_usage_limit': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
cgroupMemLimitIsSet = 1;
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="used"'
@@ -1678,7 +1679,7 @@ netdataDashboard.context = {
'cgroup.mem_usage': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
if (cgroupMemLimitIsSet === 0) {
return '<div data-netdata="' + id + '"'
+ ' data-chart-library="gauge"'
@@ -1691,8 +1692,7 @@ netdataDashboard.context = {
+ ' data-points="CHART_DURATION"'
+ ' data-colors="' + NETDATA.colors[1] + '"'
+ ' role="application"></div>';
- }
- else
+ } else
return '';
}
]
@@ -1701,7 +1701,7 @@ netdataDashboard.context = {
'cgroup.throttle_io': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="read"'
+ ' data-chart-library="gauge"'
@@ -1716,7 +1716,7 @@ netdataDashboard.context = {
+ ' role="application"></div>';
},
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="write"'
+ ' data-chart-library="gauge"'
@@ -1856,7 +1856,7 @@ netdataDashboard.context = {
info: 'Web server responses by type. <code>success</code> includes <b>1xx</b>, <b>2xx</b>, <b>304</b> and <b>401</b>, <code>error</code> includes <b>5xx</b>, <code>redirect</code> includes <b>3xx</b> except <b>304</b>, <code>bad</code> includes <b>4xx</b> except <b>401</b>, <code>other</code> are all the other responses.',
mainheads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="success"'
+ ' data-chart-library="gauge"'
@@ -1874,7 +1874,7 @@ netdataDashboard.context = {
},
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="redirect"'
+ ' data-chart-library="gauge"'
@@ -1892,7 +1892,7 @@ netdataDashboard.context = {
},
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="bad"'
+ ' data-chart-library="gauge"'
@@ -1910,7 +1910,7 @@ netdataDashboard.context = {
},
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="error"'
+ ' data-chart-library="gauge"'
@@ -1943,7 +1943,7 @@ netdataDashboard.context = {
'web_log.response_time': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="avg"'
+ ' data-chart-library="gauge"'
@@ -1989,7 +1989,7 @@ netdataDashboard.context = {
'<code>other</code> are all the other responses.',
mainheads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="success"'
+ ' data-chart-library="gauge"'
@@ -2007,7 +2007,7 @@ netdataDashboard.context = {
},
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="redirect"'
+ ' data-chart-library="gauge"'
@@ -2025,7 +2025,7 @@ netdataDashboard.context = {
},
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="bad"'
+ ' data-chart-library="gauge"'
@@ -2043,7 +2043,7 @@ netdataDashboard.context = {
},
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="error"'
+ ' data-chart-library="gauge"'
@@ -2078,7 +2078,7 @@ netdataDashboard.context = {
'web_log.squid_duration': {
mainheads: [
function (os, id) {
- void(os);
+ void (os);
return '<div data-netdata="' + id + '"'
+ ' data-dimensions="avg"'
+ ' data-chart-library="gauge"'
@@ -2475,33 +2475,33 @@ netdataDashboard.context = {
'proxysql.pool_status': {
info: 'The status of the backend servers. ' +
- '<code>1=ONLINE</code> backend server is fully operational, ' +
- '<code>2=SHUNNED</code> backend sever is temporarily taken out of use because of either too many connection errors in a time that was too short, or replication lag exceeded the allowed threshold, ' +
- '<code>3=OFFLINE_SOFT</code> when a server is put into OFFLINE_SOFT mode, new incoming connections aren\'t accepted anymore, while the existing connections are kept until they became inactive. In other words, connections are kept in use until the current transaction is completed. This allows to gracefully detach a backend, ' +
- '<code>4=OFFLINE_HARD</code> when a server is put into OFFLINE_HARD mode, the existing connections are dropped, while new incoming connections aren\'t accepted either. This is equivalent to deleting the server from a hostgroup, or temporarily taking it out of the hostgroup for maintenance work, ' +
- '<code>-1</code> Unknown status.'
+ '<code>1=ONLINE</code> backend server is fully operational, ' +
+ '<code>2=SHUNNED</code> backend sever is temporarily taken out of use because of either too many connection errors in a time that was too short, or replication lag exceeded the allowed threshold, ' +
+ '<code>3=OFFLINE_SOFT</code> when a server is put into OFFLINE_SOFT mode, new incoming connections aren\'t accepted anymore, while the existing connections are kept until they became inactive. In other words, connections are kept in use until the current transaction is completed. This allows to gracefully detach a backend, ' +
+ '<code>4=OFFLINE_HARD</code> when a server is put into OFFLINE_HARD mode, the existing connections are dropped, while new incoming connections aren\'t accepted either. This is equivalent to deleting the server from a hostgroup, or temporarily taking it out of the hostgroup for maintenance work, ' +
+ '<code>-1</code> Unknown status.'
},
'proxysql.pool_net': {
info: 'The amount of data sent to/received from the backend ' +
- '(This does not include metadata (packets\' headers, OK/ERR packets, fields\' description, etc).'
+ '(This does not include metadata (packets\' headers, OK/ERR packets, fields\' description, etc).'
},
'proxysql.pool_overall_net': {
info: 'The amount of data sent to/received from the all backends ' +
- '(This does not include metadata (packets\' headers, OK/ERR packets, fields\' description, etc).'
+ '(This does not include metadata (packets\' headers, OK/ERR packets, fields\' description, etc).'
},
'proxysql.questions': {
info: '<code>questions</code> total number of queries sent from frontends, ' +
- '<code>slow_queries</code> number of queries that ran for longer than the threshold in milliseconds defined in global variable <code>mysql-long_query_time</code>. '
+ '<code>slow_queries</code> number of queries that ran for longer than the threshold in milliseconds defined in global variable <code>mysql-long_query_time</code>. '
},
'proxysql.connections': {
info: '<code>aborted</code> number of frontend connections aborted due to invalid credential or max_connections reached, ' +
- '<code>connected</code> number of frontend connections currently connected, ' +
- '<code>created</code> number of frontend connections created, ' +
- '<code>non_idle</code> number of frontend connections that are not currently idle. '
+ '<code>connected</code> number of frontend connections currently connected, ' +
+ '<code>created</code> number of frontend connections created, ' +
+ '<code>non_idle</code> number of frontend connections that are not currently idle. '
},
'proxysql.pool_latency': {
@@ -2565,7 +2565,7 @@ netdataDashboard.context = {
'vsphere.host_mem_usage': {
info:
- '<code>granted</code> is amount of machine memory that is mapped for a host, '+
+ '<code>granted</code> is amount of machine memory that is mapped for a host, ' +
'it equals sum of all granted metrics for all powered-on virtual machines, plus machine memory for vSphere services on the host. ' +
'<code>consumed</code> is amount of machine memory used on the host, it includes memory used by the Service Console, the VMkernel, vSphere services, plus the total consumed metrics for all running virtual machines. ' +
'<code>consumed</code> = <code>total host memory</code> - <code>free host memory</code>.' +
@@ -2660,7 +2660,7 @@ netdataDashboard.context = {
'<code>2</code>: one or more components in the appliance might be degraded; ' +
'<code>3</code>: one or more components might be in an unusable status and the appliance might become unresponsive soon; ' +
'<code>4</code>: no health data is available.'
- },
+ },
'vcsa.components_health': {
info:
@@ -2670,7 +2670,7 @@ netdataDashboard.context = {
'<code>2</code>: degraded, and may have serious problems; ' +
'<code>3</code>: unavailable, or will stop functioning soon; ' +
'<code>4</code>: no health data is available.'
- },
+ },
'vcsa.software_updates_health': {
info:
@@ -2680,7 +2680,7 @@ netdataDashboard.context = {
'<code>2</code>: non-security updates are available; ' +
'<code>3</code>: security updates are available; ' +
'<code>4</code>: an error retrieving information on software updates.'
- },
+ },
// ------------------------------------------------------------------------
// Zookeeper
@@ -2692,5 +2692,142 @@ netdataDashboard.context = {
'<code>2</code>: follower, ' +
'<code>3</code>: observer, ' +
'<code>4</code>: standalone.'
- }
+ },
+
+ // ------------------------------------------------------------------------
+ // Squidlog
+
+ 'squidlog.requests': {
+ info: 'Total number of requests (log lines read). It includes <code>unmatched</code>.'
+ },
+
+ 'squidlog.excluded_requests': {
+ info: '<code>unmatched</code> counts the lines in the log file that are not matched by the plugin parser (<a href="https://github.com/netdata/netdata/issues/new?title=squidlog%20reports%20unmatched%20lines&body=squidlog%20plugin%20reports%20unmatched%20lines.%0A%0AThis%20is%20my%20log:%0A%0A%60%60%60txt%0A%0Aplease%20paste%20your%20squid%20server%20log%20here%0A%0A%60%60%60" target="_blank">let us know</a> if you have any unmatched).'
+ },
+
+ 'squidlog.type_requests': {
+ info: 'Requests by response type:<br>' +
+ '<ul>' +
+ ' <li><code>success</code> includes 1xx, 2xx, 0, 304, 401.</li>' +
+ ' <li><code>error</code> includes 5xx and 6xx.</li>' +
+ ' <li><code>redirect</code> includes 3xx except 304.</li>' +
+ ' <li><code>bad</code> includes 4xx except 401.</li>' +
+ ' </ul>'
+ },
+
+ 'squidlog.http_status_code_class_responses': {
+ info: 'The HTTP response status code classes. According to <a href="https://tools.ietf.org/html/rfc7231" target="_blank">rfc7231</a>:<br>' +
+ ' <li><code>1xx</code> is informational responses.</li>' +
+ ' <li><code>2xx</code> is successful responses.</li>' +
+ ' <li><code>3xx</code> is redirects.</li>' +
+ ' <li><code>4xx</code> is bad requests.</li>' +
+ ' <li><code>5xx</code> is internal server errors.</li>' +
+ ' </ul>' +
+ 'Squid also uses <code>0</code> for a result code being unavailable, and <code>6xx</code> to signal an invalid header, a proxy error.'
+ },
+
+ 'squidlog.http_status_code_responses': {
+ info: 'Number of responses for each http response status code individually.'
+ },
+
+ 'squidlog.uniq_clients': {
+ info: 'Unique clients (requesting instances), within each data collection iteration. If data collection is <b>per second</b>, this chart shows <b>unique clients per second</b>.'
+ },
+
+ 'squidlog.bandwidth': {
+ info: 'The size is the amount of data delivered to the clients. Mind that this does not constitute the net object size, as headers are also counted. ' +
+ 'Also, failed requests may deliver an error page, the size of which is also logged here.'
+ },
+
+ 'squidlog.response_time': {
+ info: 'The elapsed time considers how many milliseconds the transaction busied the cache. It differs in interpretation between TCP and UDP:' +
+ '<ul>' +
+ ' <li><code>TCP</code> this is basically the time from having received the request to when Squid finishes sending the last byte of the response.</li>' +
+ ' <li><code>UDP</code> this is the time between scheduling a reply and actually sending it.</li>' +
+ ' </ul>' +
+ 'Please note that <b>the entries are logged after the reply finished being sent</b>, not during the lifetime of the transaction.'
+ },
+
+ 'squidlog.cache_result_code_requests': {
+ info: 'The Squid result code is composed of several tags (separated by underscore characters) which describe the response sent to the client. ' +
+ 'Check the <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Squid_result_codes">squid documentation</a> about them.'
+ },
+
+ 'squidlog.cache_result_code_transport_tag_requests': {
+ info: 'These tags are always present and describe delivery method.<br>' +
+ '<ul>' +
+ ' <li><code>TCP</code> requests on the HTTP port (usually 3128).</li>' +
+ ' <li><code>UDP</code> requests on the ICP port (usually 3130) or HTCP port (usually 4128).</li>' +
+ ' <li><code>NONE</code> Squid delivered an unusual response or no response at all. Seen with cachemgr requests and errors, usually when the transaction fails before being classified into one of the above outcomes. Also seen with responses to CONNECT requests.</li>' +
+ ' </ul>'
+ },
+
+ 'squidlog.cache_result_code_handling_tag_requests': {
+ info: 'These tags are optional and describe why the particular handling was performed or where the request came from.<br>' +
+ '<ul>' +
+ ' <li><code>CF</code> at least one request in this transaction was collapsed. See <a href="http://www.squid-cache.org/Doc/config/collapsed_forwarding/" target="_blank">collapsed_forwarding</a> for more details about request collapsing.</li>' +
+ ' <li><code>CLIENT</code> usually seen with client issued a "no-cache", or analogous cache control command along with the request. Thus, the cache has to validate the object.</li>' +
+ ' <li><code>IMS</code> the client sent a revalidation (conditional) request.</li>' +
+ ' <li><code>ASYNC</code> the request was generated internally by Squid. Usually this is background fetches for cache information exchanges, background revalidation from <i>stale-while-revalidate</i> cache controls, or ESI sub-objects being loaded.</li>' +
+ ' <li><code>SWAPFAIL</code> the object was believed to be in the cache, but could not be accessed. A new copy was requested from the server.</li>' +
+ ' <li><code>REFRESH</code> a revalidation (conditional) request was sent to the server.</li>' +
+ ' <li><code>SHARED</code> this request was combined with an existing transaction by collapsed forwarding.</li>' +
+ ' <li><code>REPLY</code> the HTTP reply from server or peer. Usually seen on <code>DENIED</code> due to <a href="http://www.squid-cache.org/Doc/config/http_reply_access/" target="_blank">http_reply_access</a> ACLs preventing delivery of servers response object to the client.</li>' +
+ ' </ul>'
+ },
+
+ 'squidlog.cache_code_object_tag_requests': {
+ info: 'These tags are optional and describe what type of object was produced.<br>' +
+ '<ul>' +
+ ' <li><code>NEGATIVE</code> only seen on HIT responses, indicating the response was a cached error response. e.g. <b>404 not found</b>.</li>' +
+ ' <li><code>STALE</code> the object was cached and served stale. This is usually caused by <i>stale-while-revalidate</i> or <i>stale-if-error</i> cache controls.</li>' +
+ ' <li><code>OFFLINE</code> the requested object was retrieved from the cache during <a href="http://www.squid-cache.org/Doc/config/offline_mode/" target="_blank">offline_mode</a>. The offline mode never validates any object.</li>' +
+ ' <li><code>INVALID</code> an invalid request was received. An error response was delivered indicating what the problem was.</li>' +
+ ' <li><code>FAILED</code> only seen on <code>REFRESH</code> to indicate the revalidation request failed. The response object may be the server provided network error or the stale object which was being revalidated depending on stale-if-error cache control.</li>' +
+ ' <li><code>MODIFIED</code> only seen on <code>REFRESH</code> responses to indicate revalidation produced a new modified object.</li>' +
+ ' <li><code>UNMODIFIED</code> only seen on <code>REFRESH</code> responses to indicate revalidation produced a 304 (Not Modified) status. The client gets either a full 200 (OK), a 304 (Not Modified), or (in theory) another response, depending on the client request and other details.</li>' +
+ ' <li><code>REDIRECT</code> Squid generated an HTTP redirect response to this request.</li>' +
+ ' </ul>'
+ },
+
+ 'squidlog.cache_code_load_source_tag_requests': {
+ info: 'These tags are optional and describe whether the response was loaded from cache, network, or otherwise.<br>' +
+ '<ul>' +
+ ' <li><code>HIT</code> the response object delivered was the local cache object.</li>' +
+ ' <li><code>MEM</code> the response object came from memory cache, avoiding disk accesses. Only seen on HIT responses.</li>' +
+ ' <li><code>MISS</code> the response object delivered was the network response object.</li>' +
+ ' <li><code>DENIED</code> the request was denied by access controls.</li>' +
+ ' <li><code>NOFETCH</code> an ICP specific type, indicating service is alive, but not to be used for this request.</li>' +
+ ' <li><code>TUNNEL</code> a binary tunnel was established for this transaction.</li>' +
+ ' </ul>'
+ },
+
+ 'squidlog.cache_code_error_tag_requests': {
+ info: 'These tags are optional and describe some error conditions which occured during response delivery.<br>' +
+ '<ul>' +
+ ' <li><code>ABORTED</code> the response was not completed due to the connection being aborted (usually by the client).</li>' +
+ ' <li><code>TIMEOUT</code> the response was not completed due to a connection timeout.</li>' +
+ ' <li><code>IGNORED</code> while refreshing a previously cached response A, Squid got a response B that was older than A (as determined by the Date header field). Squid ignored response B (and attempted to use A instead).</li>' +
+ ' </ul>'
+ },
+
+ 'squidlog.http_method_requests': {
+ info: 'The request method to obtain an object. Please refer to section <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Request_methods">request-methods</a> for available methods and their description.'
+ },
+
+ 'squidlog.hier_code_requests': {
+ info: 'A code that explains how the request was handled, e.g. by forwarding it to a peer, or going straight to the source. ' +
+ 'Any hierarchy tag may be prefixed with <code>TIMEOUT_</code>, if the timeout occurs waiting for all ICP replies to return from the neighbours. The timeout is either dynamic, if the <a href="http://www.squid-cache.org/Doc/config/icp_query_timeout/" target="_blank">icp_query_timeout</a> was not set, or the time configured there has run up. ' +
+ 'Refer to <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Hierarchy_Codes" target="_blank">Hierarchy Codes</a> for details on hierarchy codes.'
+ },
+
+ 'squidlog.server_address_forwarded_requests': {
+ info: 'The IP address or hostname where the request (if a miss) was forwarded. For requests sent to origin servers, this is the origin server\'s IP address. ' +
+ 'For requests sent to a neighbor cache, this is the neighbor\'s hostname. NOTE: older versions of Squid would put the origin server hostname here.'
+ },
+
+ 'squidlog.mime_type_requests': {
+ info: 'The content type of the object as seen in the HTTP reply header. Please note that ICP exchanges usually don\'t have any content type.'
+ }
+
};