You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/deploy-coe.md
+45-52Lines changed: 45 additions & 52 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ The following diagram shows a deployment of Citrix Observability Exporter with a
13
13
14
14
## Prerequisites
15
15
16
-
- Ensure that you have a Kubernetes cluster with `kube-dns`addon enabled.
16
+
- Ensure that you have a Kubernetes cluster with `kube-dns`or `CoreDNS`.
17
17
- If Zipkin is used as the distributed tracer,
18
18
ensure that you have the following docker images installed in the Kubernetes cluster:
19
19
-[Zipkin](https://zipkin.io/)
@@ -25,6 +25,7 @@ The following diagram shows a deployment of Citrix Observability Exporter with a
25
25
26
26
- If Elasticsearch is used as the endpoint for transactions, ensure that you have Elasticsearch installed and configured.
27
27
- If Kafka is used as the endpoint for transactions, ensure that Kafka server is installed and configured.
28
+
- If Prometheus is used as the endpoint for time series data, ensure that Prometheus is installed and configured.
28
29
29
30
## Deploy Citrix Observability Exporter using YAML
30
31
@@ -82,8 +83,21 @@ To deploy Citrix Observability Exporter using Kubernetes YAML, perform the follo
82
83
83
84
84
85
Enable the Kafka endpoint by setting the value of `EnableKafka` as `yes`. Also, set Kafka broker details in `KafkaBroker` and topic details in `KafkaTopic`. You also must specify the Kafka cluster host IP mapping under HostAliases in the [Kubernetes Pod specification](https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/#adding-additional-entries-with-hostaliases).
86
+
87
+
- For Citrix Observability Exporter with Prometheus as the endpoint for time series data:
85
88
86
-
**Note:**
89
+
You can enable Prometheus support by specifying the following annotations in the YAML files to deploy Zipkin, Kafka, or Elasticsearch and exposing the time series port.
90
+
91
+
prometheus.io/scrape: "true"
92
+
prometheus.io/port: "5563"
93
+
94
+
The following command deploys Citrix Observability Exporter with both Elasticsearch and Prometheus as endpoints, using the [coe-es-prometheus.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/deployment/coe-es-prometheus.yaml) file. In this YAML file, annotations for Prometheus support are enabled and port 5563 is exposed which is used for the time series data.
95
+
96
+
kubectl create -f coe-es-prometheus.yaml
97
+
98
+
You should configure Prometheus to scrape the data from the Citrix Observability Exporter time series port. For enabling time series data processing, there is no specific configuration required on Citrix Observability Exporter. By default, if time series data is pushed to Citrix Observability Exporter, it is processed automatically. The time series port is enabled by default.
99
+
100
+
**Note:**
87
101
Once you deploy a Citrix Observability Exporter instance with a specific endpoint, you cannot modify it. For changing the endpoint, you must bring down the Citrix Observability Exporter instance and deploy it again with the new endpoint.
88
102
89
103
## Configure Citrix Observability Exporter support on Citrix ADC
@@ -96,9 +110,6 @@ In this procedure, a Citrix ADC CPX is deployed with the Citrix ingress controll
96
110
97
111
Depending on the endpoint you are using, you can choose the YAML file for deploying Citrix ADC CPX. These YAML files include the configuration required for Citrix Observability Exporter.
98
112
99
-
**Note:**
100
-
Any usage of the environment variable ``NS_LOGPROXY`` in this procedure refers to ``Citrix Observability Exporter`` only.
101
-
102
113
Perform the following steps to deploy a Citrix ADC CPX instance with Citrix Observability Exporter support enabled.
103
114
104
115
1. Download the YAML file for deploying Citrix ADC CPX according to the endpoint.
@@ -107,53 +118,41 @@ Perform the following steps to deploy a Citrix ADC CPX instance with Citrix Obse
107
118
- For Elasticsearch as the transaction endpoint: [cpx-ingress-es.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/examples/elasticsearch/cpx-ingress-es.yaml)
108
119
- For Kafka as the transaction endpoint: [cpx-ingress-kafka.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/examples/kafka/cpx-ingress-kafka.yaml)
109
120
110
-
2.Edit the YAML file and specify the environment variables in the Citrix ingress controller configuration according to the endpoint you are using:
121
+
2.Create and deploy a ConfigMap with the required key-value pairs in the ConfigMap. You can use the [cic-configmap.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/examples/cic-configmap.yaml) file.
111
122
112
-
- For tracing support with Zipkin:
113
-
114
-
-name: "NS_LOGPROXY"
115
-
value: "<abc.com>"
116
-
-name: "NS_DISTRIBUTED_TRACING"
117
-
value: "yes"
123
+
kubectl create -f cic-configmap.yaml
124
+
125
+
3. Deploy Citrix ADC CPX with the Citrix ingress controller as a sidecar using the following command.
118
126
127
+
- For tracing support with Zipkin:
119
128
120
-
- For Elasticsearch or Kafka as the transaction endpoint:
121
-
129
+
kubectl create -f cpx-ingress-tracing.yaml
130
+
131
+
- For Elasticsearch as the transaction endpoint:
132
+
133
+
kubectl create -f cpx-ingress-es.yaml
134
+
135
+
- For Kafka as the transaction endpoint:
122
136
123
-
- name: "NS_LOGPROXY"
124
-
value: "<abc.com>"
137
+
kubectl create -f cpx-ingress-kafka.yaml
125
138
126
-
**Note:**
139
+
**Note:**
127
140
Using [smart annotations](https://developer-docs.citrix.com/projects/citrix-k8s-ingress-controller/en/latest/configure/annotations/), you can define specific parameters you must import by specifying it in the YAML file for deploying Citrix ADC CPX.
You can also define the parameters to import using smart annotations for service. You can specify the parameters in the YAML for deploying Citrix Observability Exporter. However, you can use service annotations only when the service type is `LoadBalancer`.
150
+
**Note:** You can also define the parameters to import using smart annotations for service. You can specify the parameters in the YAML for deploying Citrix Observability Exporter. However, you can use service annotations only when the service type is `LoadBalancer`.
3. Deploy Citrix ADC CPX with the Citrix ingress controller as a sidecar using the following command.
145
-
146
-
- For tracing support with Zipkin:
147
-
148
-
kubectl create -f cpx-ingress-tracing.yaml
149
-
150
-
- For Elasticsearch as the transaction endpoint:
151
-
152
-
kubectl create -f cpx-ingress-es.yaml
153
-
154
-
- For Kafka as the transaction endpoint:
155
-
156
-
kubectl create -f cpx-ingress-kafka.yaml
157
156
158
157
### Deploy the Citrix ingress controller with Citrix Observability Exporter support for Citrix ADC MPX or VPX
159
158
@@ -165,28 +164,13 @@ Perform the following steps to deploy a Citrix ADC CPX instance with Citrix Obse
165
164
166
165
1. Download the [vpx-ingress.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/examples/vpx-ingress.yaml) file.
167
166
168
-
2.Edit the `vpx-ingress.yaml` file and modify the values for the environmental variables as provided in [deploying the Citrix ingress controller](https://developer-docs.citrix.com/projects/citrix-k8s-ingress-controller/en/latest/deploy/deploy-cic-yaml/#deploy-citrix-ingress-controller-as-a-pod).
167
+
2.Create and deploy a ConfigMap with the required key-value pairs in the ConfigMap. You can use the [cic-configmap.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/examples/cic-configmap.yaml) file.
169
168
170
-
3. Specify environment variables for Citrix Observability Exporter in the Citrix ingress controller configuration.
169
+
kubectl create -f cic-configmap.yaml
171
170
172
-
- For tracing support with Zipkin:
173
-
171
+
3. Deploy the [vpx-ingress.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/examples/vpx-ingress.yaml) file using the following command.
174
172
175
-
- name: "NS_LOGPROXY"
176
-
value: "<abc.com>"
177
-
- name: "NS_DISTRIBUTED_TRACING"
178
-
value: "yes"
179
-
180
-
181
-
- For ElasticSearch or Kafka as the transaction endpoint:
182
-
183
-
184
-
- name: "NS_LOGPROXY"
185
-
value: "<abc.com>:5557"
186
-
187
-
4. Once you update the environment variables, save the [vpx-ingress.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/examples/vpx-ingress.yaml) file and deploy it using the following command.
188
-
189
-
kubectl create -f vpx-ingress.yaml -n tracing
173
+
kubectl create -f vpx-ingress.yaml -n tracing
190
174
191
175
## Deploy sample applications
192
176
@@ -259,3 +243,12 @@ file. This sample web application is added as a service in the Ingress.
259
243
**Note:**
260
244
You can import the Kibana dashboard template from [dashboards](https://github.com/citrix/citrix-observability-exporter/blob/master/dashboards/KibanaAppTrans.ndjson).
261
245
Before importing the Kibana dashboard, you must define an index pattern named `*http*` using the information in the [Kibana User Guide](https://www.elastic.co/guide/en/kibana/current/tutorial-define-index.html).
246
+
247
+
### Sample Grafana dashboard for Prometheus
248
+
249
+
Following is a sample Grafana dashboard which visualizes time series data from Prometheus. Kafka is used as the transaction endpoint.
@@ -26,6 +27,11 @@ Currently, you can monitor performance at the application level using Citrix ADC
26
27
27
28
Citrix Observability Exporter supports collecting transactions and streaming them to endpoints. Currently, Citrix Observability Exporter supports Elasticsearch and Kafka as transaction endpoints.
28
29
30
+
### Time series data support
31
+
32
+
Citrix Observability Exporter supports collecting time series data (metrics) from Citrix ADC instances and exports them to Prometheus. Prometheus is a monitoring solution for storing time series data like metrics. You can then add Prometheus as a data source to Grafana and graphically view the Citrix ADC metrics and analyze the metrics.
33
+
34
+
29
35
## How does Citrix Observability Exporter work
30
36
31
37
### Distributed tracing with Zipkin using Citrix Observability Exporter
@@ -42,6 +48,10 @@ When Elasticsearch is specified as the transaction endpoint, Citrix Observabilit
42
48
43
49
When Kafka is specified as the transaction endpoint, Citrix Observability Exporter converts the transaction data to [Avro](http://avro.apache.org/docs/current/Avro) format and streams them to Kafka.
44
50
51
+
### Citrix Observability Exporter with Prometheus as the endpoint for time series data
52
+
53
+
When Prometheus is specified as the format for time series data, Citrix Observability Exporter collects various metrics from Citrix ADCs and converts them to appropriate Prometheus format and exports them to the Prometheus server. These metrics include counters of the virtual servers, services to which the analytics profile is bound and global counters of HTTP, TCP and so on.
54
+
45
55
## Deployment
46
56
47
57
You can deploy Citrix Observability Exporter using Kubernetes YAML. To deploy Citrix Observability Exporter using Kubernetes YAML, see [Deployment](deploy-coe.md).
0 commit comments