Skip to content

Commit d67a7e5

Browse files
[Citrix ADC] Add Integration Package with lbvserver Data Stream (#4418)
* Add lbvserver data stream * update changelog.yml and codeowners * update config.yml file * minor changes in README.md * add and update dashboards * Update visualization titles and screenshot * minor changes in dashboards screenshot * minor changes in README.md * minor changes in README.md
1 parent 7ab3d46 commit d67a7e5

21 files changed

+2252
-11
lines changed

packages/citrix_adc/_dev/build/docs/README.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55
The Citrix ADC integration allows you to monitor your Citrix ADC instance. Citrix ADC is an application delivery controller that performs application-specific traffic analysis to intelligently distribute, optimize, and secure Layer 4 - Layer 7 (L4–L7) network traffic for web applications.
66

7-
Use the Citrix ADC integration to collect metrics related to the interface and service. Then visualize that data in Kibana, create alerts to notify you if something goes wrong, and reference logs when troubleshooting an issue.
7+
Use the Citrix ADC integration to collect metrics related to the interface, lbvserver, and service. Then visualize that data in Kibana, create alerts to notify you if something goes wrong, and reference logs when troubleshooting an issue.
88

99
## Data streams
1010

1111
The Citrix ADC integration collects metrics data.
1212

13-
Metrics give you insight into the statistics of the Citrix ADC. Metrics data streams collected by the Citrix ADC integration include [interface](https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/statistics/network/interface/) and [service](https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/statistics/basic/service/), so that the user could monitor and troubleshoot the performance of the Citrix ADC instances.
13+
Metrics give you insight into the statistics of the Citrix ADC. Metrics data streams collected by the Citrix ADC integration include [interface](https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/statistics/network/interface/), [lbvserver](https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/statistics/lb/lbvserver/), and [service](https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/statistics/basic/service/), so that the user could monitor and troubleshoot the performance of the Citrix ADC instances.
1414

1515
Note:
1616
- Users can monitor and see the metrics inside the ingested documents for Citrix ADC in the logs-* index pattern from `Discover`.
@@ -33,15 +33,23 @@ Example Host Configuration: `http://localhost:9080`
3333

3434
### Interface
3535

36-
This is the `interface` data stream. The Citrix ADC interfaces are numbered in slot/port notation. In addition to modifying the characteristics of individual interfaces, you can configure virtual LANs to restrict traffic to specific groups of hosts.
36+
This is the `interface` data stream. The Citrix ADC interfaces are numbered in slot/port notation. In addition to modifying the characteristics of individual interfaces, you can configure virtual LANs to restrict traffic to specific groups of hosts. `interface` data stream collects metrics related to id, state, inbound packets, outbound packets, and received packets.
3737

3838
{{event "interface"}}
3939

4040
{{fields "interface"}}
4141

42+
### Load Balancing Virtual Server
43+
44+
This is the `lbvserver` data stream. The load balancing server is logically located between the client and the server farm, and manages traffic flow to the servers in the server farm. `lbvserver` data stream collects metrics related to name, state, client connections, requests, and responses.
45+
46+
{{event "lbvserver"}}
47+
48+
{{fields "lbvserver"}}
49+
4250
### Service
4351

44-
This is the `service` data stream. With the help of the service endpoint, metrics like throughput, client-server connections, request bytes can be collected along with other statistics for Service resources.
52+
This is the `service` data stream. With the help of the service endpoint, metrics like throughput, client-server connections, request bytes can be collected along with other statistics for Service resources. `service` data stream collects metrics related to name, IP address, port, throughput, and transactions.
4553

4654
{{event "service"}}
4755

packages/citrix_adc/_dev/deploy/docker/docker-compose.yml

100644100755
File mode changed.

packages/citrix_adc/_dev/deploy/docker/files/config.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,9 @@ rules:
1111
- status_code: 200
1212
body: |-
1313
{"errorcode": 0, "message": "Done", "severity": "NONE", "service": [{"name": "nshttpd-gui-127.0.0.1-80", "throughput": "0", "throughputrate": 0, "avgsvrttfb": "34", "primaryipaddress": "127.0.0.1", "primaryport": 80, "servicetype": "HTTP", "state": "UP", "totalrequests": "15133", "requestsrate": 0, "totalresponses": "15133", "responsesrate": 0, "totalrequestbytes": "8334520", "requestbytesrate": 139, "totalresponsebytes": "26482988", "responsebytesrate": 316, "curclntconnections": "8", "surgecount": "0", "cursrvrconnections": "2", "svrestablishedconn": "2", "curreusepool": "2", "maxclients": "0", "curload": "0", "totalconnreassemblyqueue75": "0", "totalconnreassemblyqueueflush": "0", "httpmaxhdrszpkts": "0", "httpmaxhdrfldlenpkts": "0", "tcpmaxooopkts": "0", "curtflags": "0", "totsvrttlbtransactions": "0", "toleratingttlbtransactions": "0", "frustratingttlbtransactions": "0", "vsvrservicehits": "0", "vsvrservicehitsrate": 0, "activetransactions": "0", "serviceorder": "0"}, {"name": "nshttpd-vpn-127.0.0.1-81", "throughput": "0", "throughputrate": 0, "avgsvrttfb": "0", "primaryipaddress": "127.0.0.1", "primaryport": 81, "servicetype": "HTTP", "state": "DOWN", "totalrequests": "0", "requestsrate": 0, "totalresponses": "0", "responsesrate": 0, "totalrequestbytes": "0", "requestbytesrate": 0, "totalresponsebytes": "0", "responsebytesrate": 0, "curclntconnections": "0", "surgecount": "0", "cursrvrconnections": "0", "svrestablishedconn": "0", "curreusepool": "0", "maxclients": "30", "curload": "0", "totalconnreassemblyqueue75": "0", "totalconnreassemblyqueueflush": "0", "httpmaxhdrszpkts": "0", "httpmaxhdrfldlenpkts": "0", "tcpmaxooopkts": "0", "curtflags": "0", "totsvrttlbtransactions": "0", "toleratingttlbtransactions": "0", "frustratingttlbtransactions": "0", "vsvrservicehits": "0", "vsvrservicehitsrate": 0, "activetransactions": "0", "serviceorder": "0"}]}
14+
- path: /nitro/v1/stat/lbvserver
15+
methods: ['GET']
16+
responses:
17+
- status_code: 200
18+
body: |-
19+
{"errorcode":0,"message":"Done","severity":"NONE","lbvserver":[{"name":"elastic","avgcltttlb":"6","cltresponsetimeapdex":1,"vsvrsurgecount":"6","establishedconn":"6","inactsvcs":"6","vslbhealth":"67","primaryipaddress":"8.8.8.8","primaryport":80,"type":"HTTP","state":"DOWN","actsvcs":"10","cpuusagepm":"10","tothits":"10","hitsrate":5,"totalrequests":"5","requestsrate":5,"totalresponses":"5","responsesrate":5,"totalrequestbytes":"7","requestbytesrate":7,"totalresponsebytes":"7","responsebytesrate":7,"totalh2requests":"7","h2requestsrate":7,"totalh2responses":"7","h2responsesrate":7,"totalpktsrecvd":"7","pktsrecvdrate":8,"totalpktssent":"8","pktssentrate":8,"curclntconnections":"8","cursrvrconnections":"8","curpersistencesessions":"8","curbackuppersistencesessions":"8","surgecount":"8","svcsurgecount":"8","sothreshold":"8","totspillovers":"8","labelledconn":"8","pushlabel":"8","deferredreq":"13","deferredreqrate":13,"invalidrequestresponse":"13","invalidrequestresponsedropped":"13","totvserverdownbackuphits":"13","curmptcpsessions":"13","cursubflowconn":"13","totalconnreassemblyqueue75":"13","totalconnreassemblyqueueflush":"3","totalsvrbusyerr":"3","svrbusyerrrate":3,"reqretrycount":"3","reqretrycountexceeded":"3","httpmaxhdrszpkts":"3","httpmaxhdrfldlenpkts":"3","tcpmaxooopkts":"3","totcltttlbtransactions":"3","cltttlbtransactionsrate":3,"toleratingttlbtransactions":"3","toleratingttlbtransactionsrate":1,"frustratingttlbtransactions":"1","frustratingttlbtransactionsrate":1}]}

packages/citrix_adc/changelog.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
# newer versions go on top
2+
- version: "0.3.0"
3+
changes:
4+
- description: Citrix ADC integration package with "lbvserver" data stream.
5+
type: enhancement
6+
link: https://github.com/elastic/integrations/pull/4418
27
- version: "0.2.0"
38
changes:
49
- description: Citrix ADC integration package with "service" data stream.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
fields:
2+
tags:
3+
- preserve_original_event
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"name":"cpx_default_dns_vserver","avgcltttlb":"4","cltresponsetimeapdex":1,"vsvrsurgecount":"4","establishedconn":"4","inactsvcs":"1","vslbhealth":"67","primaryipaddress":"0.0.0.0","primaryport":0,"type":"DNS","state":"UP","actsvcs":"2","cpuusagepm":"10","tothits":"10","hitsrate":10,"totalrequests":"10","requestsrate":10,"totalresponses":"2","responsesrate":2,"totalrequestbytes":"2","requestbytesrate":2,"totalresponsebytes":"6","responsebytesrate":6,"totalh2requests":"6","h2requestsrate":6,"totalh2responses":"7","h2responsesrate":7,"totalpktsrecvd":"7","pktsrecvdrate":7,"totalpktssent":"8","pktssentrate":8,"curclntconnections":"8","cursrvrconnections":"8","curpersistencesessions":"9","curbackuppersistencesessions":"9","surgecount":"9","svcsurgecount":"9","sothreshold":"11","totspillovers":"11","labelledconn":"11","pushlabel":"11","deferredreq":"1","deferredreqrate":1,"invalidrequestresponse":"1","invalidrequestresponsedropped":"0","totvserverdownbackuphits":"0","curmptcpsessions":"0","cursubflowconn":"0","totalconnreassemblyqueue75":"0","totalconnreassemblyqueueflush":"0","totalsvrbusyerr":"0","svrbusyerrrate":0,"reqretrycount":"0","reqretrycountexceeded":"0","httpmaxhdrszpkts":"0","tcpmaxooopkts":"0","totcltttlbtransactions":"0","cltttlbtransactionsrate":0,"toleratingttlbtransactions":"0","toleratingttlbtransactionsrate":0,"frustratingttlbtransactions":"0","frustratingttlbtransactionsrate":0},{"name":"cpx_default_dns_tcp_vserver","avgcltttlb":"0","cltresponsetimeapdex":1,"vsvrsurgecount":"0","establishedconn":"0","inactsvcs":"1","vslbhealth":"67","primaryipaddress":"0.0.0.0","primaryport":0,"type":"DNS_TCP","state":"UP","actsvcs":"2","cpuusagepm":"0","tothits":"0","hitsrate":0,"totalrequests":"0","requestsrate":0,"totalresponses":"0","responsesrate":0,"totalrequestbytes":"0","requestbytesrate":0,"totalresponsebytes":"0","responsebytesrate":0,"totalh2requests":"0","h2requestsrate":0,"totalh2responses":"0","h2responsesrate":0,"totalpktsrecvd":"0","pktsrecvdrate":0,"totalpktssent":"0","pktssentrate":0,"curclntconnections":"0","cursrvrconnections":"0","curpersistencesessions":"0","curbackuppersistencesessions":"0","surgecount":"0","svcsurgecount":"0","sothreshold":"0","totspillovers":"0","labelledconn":"0","pushlabel":"0","deferredreq":"0","deferredreqrate":0,"invalidrequestresponse":"0","invalidrequestresponsedropped":"0","totvserverdownbackuphits":"0","curmptcpsessions":"0","cursubflowconn":"0","totalconnreassemblyqueue75":"0","totalconnreassemblyqueueflush":"0","totalsvrbusyerr":"0","svrbusyerrrate":0,"reqretrycount":"0","reqretrycountexceeded":"0","httpmaxhdrszpkts":"0","tcpmaxooopkts":"0","totcltttlbtransactions":"0","cltttlbtransactionsrate":0,"toleratingttlbtransactions":"0","toleratingttlbtransactionsrate":0,"frustratingttlbtransactions":"0","frustratingttlbtransactionsrate":0}
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
{
2+
"expected": [
3+
{
4+
"citrix_adc": {
5+
"lbvserver": {
6+
"client": {
7+
"connections": {
8+
"current": {
9+
"count": 8.0
10+
},
11+
"established": {
12+
"count": 4.0
13+
}
14+
},
15+
"response_time": {
16+
"application_performance_index": 1
17+
}
18+
},
19+
"connections": {
20+
"actual": {
21+
"count": 8.0
22+
}
23+
},
24+
"down": {
25+
"backup": {
26+
"hits": 0.0
27+
}
28+
},
29+
"health": 67.0,
30+
"hit": {
31+
"count": 10.0,
32+
"rate": 10
33+
},
34+
"name": "cpx_default_dns_vserver",
35+
"packets": {
36+
"received": {
37+
"count": 7.0
38+
},
39+
"sent": {
40+
"count": 8.0,
41+
"rate": 8
42+
}
43+
},
44+
"protocol": "DNS",
45+
"request": {
46+
"deferred": {
47+
"count": 1.0,
48+
"rate": 1
49+
},
50+
"received": {
51+
"bytes": {
52+
"rate": 2,
53+
"value": 2.0
54+
},
55+
"count": 10.0,
56+
"rate": 10
57+
},
58+
"surge_queue": {
59+
"count": 9.0
60+
},
61+
"waiting": {
62+
"count": 4.0
63+
}
64+
},
65+
"requests_responses": {
66+
"dropped": {
67+
"count": 0.0
68+
},
69+
"invalid": {
70+
"count": 1.0
71+
}
72+
},
73+
"response": {
74+
"received": {
75+
"bytes": {
76+
"rate": 6,
77+
"value": 6.0
78+
},
79+
"count": 2.0,
80+
"rate": 2
81+
}
82+
},
83+
"service": {
84+
"active": {
85+
"count": 2.0
86+
},
87+
"inactive": {
88+
"count": 1.0
89+
}
90+
},
91+
"spillover": {
92+
"count": 11.0
93+
},
94+
"state": "UP",
95+
"threshold": {
96+
"spillover": 11.0
97+
},
98+
"time_to_last_byte": {
99+
"avg": 4.0
100+
},
101+
"transaction": {
102+
"frustrating": {
103+
"count": 0.0
104+
},
105+
"tolerable": {
106+
"count": 0.0
107+
}
108+
}
109+
}
110+
},
111+
"ecs": {
112+
"version": "8.4.0"
113+
},
114+
"event": {
115+
"category": [
116+
"web"
117+
],
118+
"kind": "event",
119+
"module": "citrix_adc",
120+
"original": "{\"name\":\"cpx_default_dns_vserver\",\"avgcltttlb\":\"4\",\"cltresponsetimeapdex\":1,\"vsvrsurgecount\":\"4\",\"establishedconn\":\"4\",\"inactsvcs\":\"1\",\"vslbhealth\":\"67\",\"primaryipaddress\":\"0.0.0.0\",\"primaryport\":0,\"type\":\"DNS\",\"state\":\"UP\",\"actsvcs\":\"2\",\"cpuusagepm\":\"10\",\"tothits\":\"10\",\"hitsrate\":10,\"totalrequests\":\"10\",\"requestsrate\":10,\"totalresponses\":\"2\",\"responsesrate\":2,\"totalrequestbytes\":\"2\",\"requestbytesrate\":2,\"totalresponsebytes\":\"6\",\"responsebytesrate\":6,\"totalh2requests\":\"6\",\"h2requestsrate\":6,\"totalh2responses\":\"7\",\"h2responsesrate\":7,\"totalpktsrecvd\":\"7\",\"pktsrecvdrate\":7,\"totalpktssent\":\"8\",\"pktssentrate\":8,\"curclntconnections\":\"8\",\"cursrvrconnections\":\"8\",\"curpersistencesessions\":\"9\",\"curbackuppersistencesessions\":\"9\",\"surgecount\":\"9\",\"svcsurgecount\":\"9\",\"sothreshold\":\"11\",\"totspillovers\":\"11\",\"labelledconn\":\"11\",\"pushlabel\":\"11\",\"deferredreq\":\"1\",\"deferredreqrate\":1,\"invalidrequestresponse\":\"1\",\"invalidrequestresponsedropped\":\"0\",\"totvserverdownbackuphits\":\"0\",\"curmptcpsessions\":\"0\",\"cursubflowconn\":\"0\",\"totalconnreassemblyqueue75\":\"0\",\"totalconnreassemblyqueueflush\":\"0\",\"totalsvrbusyerr\":\"0\",\"svrbusyerrrate\":0,\"reqretrycount\":\"0\",\"reqretrycountexceeded\":\"0\",\"httpmaxhdrszpkts\":\"0\",\"tcpmaxooopkts\":\"0\",\"totcltttlbtransactions\":\"0\",\"cltttlbtransactionsrate\":0,\"toleratingttlbtransactions\":\"0\",\"toleratingttlbtransactionsrate\":0,\"frustratingttlbtransactions\":\"0\",\"frustratingttlbtransactionsrate\":0},{\"name\":\"cpx_default_dns_tcp_vserver\",\"avgcltttlb\":\"0\",\"cltresponsetimeapdex\":1,\"vsvrsurgecount\":\"0\",\"establishedconn\":\"0\",\"inactsvcs\":\"1\",\"vslbhealth\":\"67\",\"primaryipaddress\":\"0.0.0.0\",\"primaryport\":0,\"type\":\"DNS_TCP\",\"state\":\"UP\",\"actsvcs\":\"2\",\"cpuusagepm\":\"0\",\"tothits\":\"0\",\"hitsrate\":0,\"totalrequests\":\"0\",\"requestsrate\":0,\"totalresponses\":\"0\",\"responsesrate\":0,\"totalrequestbytes\":\"0\",\"requestbytesrate\":0,\"totalresponsebytes\":\"0\",\"responsebytesrate\":0,\"totalh2requests\":\"0\",\"h2requestsrate\":0,\"totalh2responses\":\"0\",\"h2responsesrate\":0,\"totalpktsrecvd\":\"0\",\"pktsrecvdrate\":0,\"totalpktssent\":\"0\",\"pktssentrate\":0,\"curclntconnections\":\"0\",\"cursrvrconnections\":\"0\",\"curpersistencesessions\":\"0\",\"curbackuppersistencesessions\":\"0\",\"surgecount\":\"0\",\"svcsurgecount\":\"0\",\"sothreshold\":\"0\",\"totspillovers\":\"0\",\"labelledconn\":\"0\",\"pushlabel\":\"0\",\"deferredreq\":\"0\",\"deferredreqrate\":0,\"invalidrequestresponse\":\"0\",\"invalidrequestresponsedropped\":\"0\",\"totvserverdownbackuphits\":\"0\",\"curmptcpsessions\":\"0\",\"cursubflowconn\":\"0\",\"totalconnreassemblyqueue75\":\"0\",\"totalconnreassemblyqueueflush\":\"0\",\"totalsvrbusyerr\":\"0\",\"svrbusyerrrate\":0,\"reqretrycount\":\"0\",\"reqretrycountexceeded\":\"0\",\"httpmaxhdrszpkts\":\"0\",\"tcpmaxooopkts\":\"0\",\"totcltttlbtransactions\":\"0\",\"cltttlbtransactionsrate\":0,\"toleratingttlbtransactions\":\"0\",\"toleratingttlbtransactionsrate\":0,\"frustratingttlbtransactions\":\"0\",\"frustratingttlbtransactionsrate\":0}",
121+
"type": [
122+
"info"
123+
]
124+
},
125+
"related": {
126+
"ip": [
127+
"0.0.0.0"
128+
]
129+
},
130+
"server": {
131+
"ip": "0.0.0.0",
132+
"port": 0
133+
},
134+
"tags": [
135+
"preserve_original_event"
136+
]
137+
}
138+
]
139+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
input: httpjson
2+
service: citrix_adc
3+
vars:
4+
hostname: http://{{Hostname}}:{{Port}}
5+
username: nsroot
6+
password: nsroot
7+
data_stream:
8+
vars:
9+
preserve_original_event: true
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
config_version: 2
2+
interval: {{period}}
3+
{{#if username}}
4+
{{#if password}}
5+
auth.basic.user: {{username}}
6+
auth.basic.password: {{password}}
7+
{{/if}}
8+
{{/if}}
9+
{{#if ssl}}
10+
request.ssl: {{ssl}}
11+
{{/if}}
12+
request.method: GET
13+
request.url: {{hostname}}/nitro/v1/stat/lbvserver
14+
response.split:
15+
target: body.lbvserver
16+
tags:
17+
{{#if preserve_original_event}}
18+
- preserve_original_event
19+
{{/if}}
20+
{{#each tags as |tag|}}
21+
- {{tag}}
22+
{{/each}}
23+
{{#contains "forwarded" tags}}
24+
publisher_pipeline.disable_host: true
25+
{{/contains}}
26+
{{#if processors}}
27+
processors:
28+
{{processors}}
29+
{{/if}}

0 commit comments

Comments
 (0)