| 1 | // SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | package squid |
| 4 | |
| 5 | import ( |
| 6 | "github.com/netdata/netdata/go/plugins/plugin/framework/collectorapi" |
| 7 | ) |
| 8 | |
| 9 | const ( |
| 10 | prioClientsNet = collectorapi.Priority + iota |
| 11 | prioClientsRequests |
| 12 | prioServersNet |
| 13 | prioServersRequests |
| 14 | ) |
| 15 | |
| 16 | var charts = collectorapi.Charts{ |
| 17 | clientsNetChart.Copy(), |
| 18 | clientsRequestsChart.Copy(), |
| 19 | serversNetChart.Copy(), |
| 20 | serversRequestsChart.Copy(), |
| 21 | } |
| 22 | |
| 23 | var ( |
| 24 | clientsNetChart = collectorapi.Chart{ |
| 25 | ID: "clients_net", |
| 26 | Title: "Squid Client Bandwidth", |
| 27 | Units: "kilobits/s", |
| 28 | Fam: "clients", |
| 29 | Ctx: "squid.clients_net", |
| 30 | Type: collectorapi.Area, |
| 31 | Priority: prioClientsNet, |
| 32 | Dims: collectorapi.Dims{ |
| 33 | {ID: "client_http.kbytes_in", Name: "in", Algo: collectorapi.Incremental, Mul: 8}, |
| 34 | {ID: "client_http.kbytes_out", Name: "out", Algo: collectorapi.Incremental, Mul: -8}, |
| 35 | {ID: "client_http.hit_kbytes_out", Name: "hits", Algo: collectorapi.Incremental, Mul: -8}, |
| 36 | }, |
| 37 | } |
| 38 | |
| 39 | clientsRequestsChart = collectorapi.Chart{ |
| 40 | ID: "clients_requests", |
| 41 | Title: "Squid Client Requests", |
| 42 | Units: "requests/s", |
| 43 | Fam: "clients", |
| 44 | Ctx: "squid.clients_requests", |
| 45 | Type: collectorapi.Line, |
| 46 | Priority: prioClientsRequests, |
| 47 | Dims: collectorapi.Dims{ |
| 48 | {ID: "client_http.requests", Name: "requests", Algo: collectorapi.Incremental}, |
| 49 | {ID: "client_http.hits", Name: "hits", Algo: collectorapi.Incremental}, |
| 50 | {ID: "client_http.errors", Name: "errors", Algo: collectorapi.Incremental, Mul: -1}, |
| 51 | }, |
| 52 | } |
| 53 | |
| 54 | serversNetChart = collectorapi.Chart{ |
| 55 | ID: "servers_net", |
| 56 | Title: "Squid Server Bandwidth", |
| 57 | Units: "kilobits/s", |
| 58 | Fam: "servers", |
| 59 | Ctx: "squid.servers_net", |
| 60 | Type: collectorapi.Area, |
| 61 | Priority: prioServersNet, |
| 62 | Dims: collectorapi.Dims{ |
| 63 | {ID: "server.all.kbytes_in", Name: "in", Algo: collectorapi.Incremental, Mul: 8}, |
| 64 | {ID: "server.all.kbytes_out", Name: "out", Algo: collectorapi.Incremental, Mul: -8}, |
| 65 | }, |
| 66 | } |
| 67 | |
| 68 | serversRequestsChart = collectorapi.Chart{ |
| 69 | ID: "servers_requests", |
| 70 | Title: "Squid Server Requests", |
| 71 | Units: "requests/s", |
| 72 | Fam: "servers", |
| 73 | Ctx: "squid.servers_requests", |
| 74 | Type: collectorapi.Line, |
| 75 | Priority: prioServersRequests, |
| 76 | Dims: collectorapi.Dims{ |
| 77 | {ID: "server.all.requests", Name: "requests", Algo: collectorapi.Incremental}, |
| 78 | {ID: "server.all.errors", Name: "errors", Algo: collectorapi.Incremental, Mul: -1}, |
| 79 | }, |
| 80 | } |
| 81 | ) |