Skip to content

Commit 785875d

Browse files
committed
coe changes for developer docs
1 parent 2e8a47e commit 785875d

6 files changed

Lines changed: 56 additions & 53 deletions

File tree

deployment/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ The following diagram shows a deployment of Citrix Observability Exporter with a
1414

1515
## Prerequisites
1616

17-
- Ensure that you have a Kubernetes cluster with `kube-dns` addon enabled.
17+
- Ensure that you have a Kubernetes cluster with `kube-dns` or `CoreDNS`.
1818
- If Zipkin is used as the distributed tracer,
1919
ensure that you have the following docker images installed in the Kubernetes cluster:
2020
- [Zipkin](https://zipkin.io/)

docs/deploy-coe.md

Lines changed: 45 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The following diagram shows a deployment of Citrix Observability Exporter with a
1313

1414
## Prerequisites
1515

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`.
1717
- If Zipkin is used as the distributed tracer,
1818
ensure that you have the following docker images installed in the Kubernetes cluster:
1919
- [Zipkin](https://zipkin.io/)
@@ -25,6 +25,7 @@ The following diagram shows a deployment of Citrix Observability Exporter with a
2525

2626
- If Elasticsearch is used as the endpoint for transactions, ensure that you have Elasticsearch installed and configured.
2727
- 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.
2829

2930
## Deploy Citrix Observability Exporter using YAML
3031

@@ -82,8 +83,21 @@ To deploy Citrix Observability Exporter using Kubernetes YAML, perform the follo
8283

8384
8485
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:
8588

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:**
87101
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.
88102

89103
## 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
96110

97111
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.
98112

99-
**Note:**
100-
Any usage of the environment variable ``NS_LOGPROXY`` in this procedure refers to ``Citrix Observability Exporter`` only.
101-
102113
Perform the following steps to deploy a Citrix ADC CPX instance with Citrix Observability Exporter support enabled.
103114

104115
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
107118
- 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)
108119
- 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)
109120

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.
111122

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.
118126

127+
- For tracing support with Zipkin:
119128

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:
122136

123-
- name: "NS_LOGPROXY"
124-
value: "<abc.com>"
137+
kubectl create -f cpx-ingress-kafka.yaml
125138

126-
**Note:**
139+
**Note:**
127140
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.
128141

129142
For example:
130143

144+
131145
132146
ingress.citrix.com/analyticsprofile: '{"webinsight": {"httpurl":"ENABLED", "httpuseragent":"ENABLED", "httphost":"ENABLED", "httpmethod":"ENABLED", "httpcontenttype":"ENABLED"}, "tcpinsight": {"tcpBurstReporting":"DISABLED"}}'
133147

134148

135149
136-
**Note:**
137-
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`.
138151

139152
For example:
140153

141154
service.citrix.com/analyticsprofile: '{"<service name>":'{"webinsight": {"httpurl":"ENABLED", "httpuseragent":"ENABLED"}
142-
143155

144-
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
157156

158157
### Deploy the Citrix ingress controller with Citrix Observability Exporter support for Citrix ADC MPX or VPX
159158

@@ -165,28 +164,13 @@ Perform the following steps to deploy a Citrix ADC CPX instance with Citrix Obse
165164

166165
1. Download the [vpx-ingress.yaml](https://github.com/citrix/citrix-observability-exporter/blob/master/examples/vpx-ingress.yaml) file.
167166

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.
169168

170-
3. Specify environment variables for Citrix Observability Exporter in the Citrix ingress controller configuration.
169+
kubectl create -f cic-configmap.yaml
171170

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.
174172

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
190174

191175
## Deploy sample applications
192176

@@ -259,3 +243,12 @@ file. This sample web application is added as a service in the Ingress.
259243
**Note:**
260244
You can import the Kibana dashboard template from [dashboards](https://github.com/citrix/citrix-observability-exporter/blob/master/dashboards/KibanaAppTrans.ndjson).
261245
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.
250+
251+
![Grafana-dashboard](../media/COE-GrafanaDashboard.png)
252+
253+
**Note:**
254+
You can import the Grafana dashboard template from [dashboards](https://github.com/citrix/citrix-observability-exporter/tree/master/dashboards).

docs/index.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- [Zipkin](https://zipkin.io/)
1010
- [Kafka](https://kafka.apache.org/)
1111
- [Elasticsearch](https://www.elastic.co/products/elasticsearch)
12+
- [Prometheus](https://prometheus.io/docs/introduction/overview/)
1213

1314
## Overview
1415

@@ -26,6 +27,11 @@ Currently, you can monitor performance at the application level using Citrix ADC
2627

2728
Citrix Observability Exporter supports collecting transactions and streaming them to endpoints. Currently, Citrix Observability Exporter supports Elasticsearch and Kafka as transaction endpoints.
2829

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+
2935
## How does Citrix Observability Exporter work
3036

3137
### Distributed tracing with Zipkin using Citrix Observability Exporter
@@ -42,6 +48,10 @@ When Elasticsearch is specified as the transaction endpoint, Citrix Observabilit
4248

4349
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.
4450

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+
4555
## Deployment
4656

4757
You can deploy Citrix Observability Exporter using Kubernetes YAML. To deploy Citrix Observability Exporter using Kubernetes YAML, see [Deployment](deploy-coe.md).
213 KB
Loading
219 KB
Loading
24 KB
Loading

0 commit comments

Comments
 (0)