From c8a6fe5bb4233eb0551b8424f5d57121e86124a1 Mon Sep 17 00:00:00 2001 From: Yujun Zhang Date: Tue, 3 Apr 2018 16:48:24 +0800 Subject: Move design document to dedicated folder Change-Id: I20c85b7116cd2b29d0efcaae5ee0b0381a685bbb Signed-off-by: Yujun Zhang --- docs/development/design/index.rst | 15 ++++++++++++ docs/development/design/logging.rst | 28 ++++++++++++++++++++++ docs/development/design/monitoring.rst | 31 ++++++++++++++++++++++++ docs/development/design/tracing.rst | 44 ++++++++++++++++++++++++++++++++++ docs/logging.rst | 28 ---------------------- docs/monitoring.rst | 31 ------------------------ docs/tracing.rst | 44 ---------------------------------- 7 files changed, 118 insertions(+), 103 deletions(-) create mode 100644 docs/development/design/index.rst create mode 100644 docs/development/design/logging.rst create mode 100644 docs/development/design/monitoring.rst create mode 100644 docs/development/design/tracing.rst delete mode 100644 docs/logging.rst delete mode 100644 docs/monitoring.rst delete mode 100644 docs/tracing.rst diff --git a/docs/development/design/index.rst b/docs/development/design/index.rst new file mode 100644 index 0000000..1bb89f1 --- /dev/null +++ b/docs/development/design/index.rst @@ -0,0 +1,15 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) OPNFV, Authors of Clover + +================================= +OPNFV Clover Design Specification +================================= + +.. toctree:: + :maxdepth: 1 + + logging + monitoring + tracing diff --git a/docs/development/design/logging.rst b/docs/development/design/logging.rst new file mode 100644 index 0000000..196ba40 --- /dev/null +++ b/docs/development/design/logging.rst @@ -0,0 +1,28 @@ +####### +Logging +####### + +************ +Installation +************ + +Currently, we use the `sample configuration`_ in Istio to install fluentd:: + + cd clover/logging + kubectl apply -f install + +.. _sample configuration: https://istio.io/docs/tasks/telemetry/fluentd.html + +******** +Validate +******** + +The scripts in ``clover/logging`` validates fluentd installation:: + + python clover/logging/validate.py + +It validates the installation with the following criterias + +#. existence of fluented pod +#. fluentd input is configured correctly +#. TBD diff --git a/docs/development/design/monitoring.rst b/docs/development/design/monitoring.rst new file mode 100644 index 0000000..44b01e3 --- /dev/null +++ b/docs/development/design/monitoring.rst @@ -0,0 +1,31 @@ +########## +Monitoring +########## + +************ +Installation +************ + +Currently, we use the Istio build-in prometheus addon to install prometheus:: + + cd + kubectl apply -f install/kubernetes/addons/prometheus.yaml + +******** +Validate +******** + +Setup port-forwarding for prometheus by executing the following command:: + + kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 & + +Run the scripts in ``clover/monitoring`` validates prometheus installation:: + + python clover/monitoring/validate.py + +It validates the installation with the following criterias + +#. [DONE] prometheus pod is in Running state +#. [DONE] prometheus is conneted to monitoring targets +#. [TODO] test collecting telemetry data from istio +#. [TODO] TBD diff --git a/docs/development/design/tracing.rst b/docs/development/design/tracing.rst new file mode 100644 index 0000000..79d686c --- /dev/null +++ b/docs/development/design/tracing.rst @@ -0,0 +1,44 @@ +####### +Tracing +####### + +************ +Installation +************ + +Currently, we use the Jaeger tracing all-in-one Kubernetes template for development and testing, +which uses in-memory storage. It can be deployed to the istio-system namespace with the +following command:: + + kubectl apply -n istio-system -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml + +The standard Jaeger REST port is at 16686. To make this service available outside of the +Kubernetes cluster, use the following command:: + + kubectl expose -n istio-system deployment jaeger-deployment --port=16686 --type=NodePort + +Kubernetes will expose the Jaeger service on another port, which can be found with:: + + kubectl get svc -n istio-system + +An example listing from the command above is shown below where the Jaeger service is exposed +externally on port 30888:: + + istio-system jaeger-deployment NodePort 10.104.113.94 16686:30888/TCP + +Jaeger will be accessible using the host IP of the Kubernetes cluster and port provided. + +******** +Validate +******** + +The script in ``clover/tracing`` validates Jaeger installation:: + + python clover/tracing/validate.py + +It validates the installation with the following criteria: + +#. Existence of Jaeger all-in-one deployment using Kubernetes +#. Jaeger service is accessible using IP address and port configured in installation steps +#. Jaeger can retrieve default service listing for default Istio components +#. TBD - consider installation of production setup with cassandra or elastic search diff --git a/docs/logging.rst b/docs/logging.rst deleted file mode 100644 index 196ba40..0000000 --- a/docs/logging.rst +++ /dev/null @@ -1,28 +0,0 @@ -####### -Logging -####### - -************ -Installation -************ - -Currently, we use the `sample configuration`_ in Istio to install fluentd:: - - cd clover/logging - kubectl apply -f install - -.. _sample configuration: https://istio.io/docs/tasks/telemetry/fluentd.html - -******** -Validate -******** - -The scripts in ``clover/logging`` validates fluentd installation:: - - python clover/logging/validate.py - -It validates the installation with the following criterias - -#. existence of fluented pod -#. fluentd input is configured correctly -#. TBD diff --git a/docs/monitoring.rst b/docs/monitoring.rst deleted file mode 100644 index 44b01e3..0000000 --- a/docs/monitoring.rst +++ /dev/null @@ -1,31 +0,0 @@ -########## -Monitoring -########## - -************ -Installation -************ - -Currently, we use the Istio build-in prometheus addon to install prometheus:: - - cd - kubectl apply -f install/kubernetes/addons/prometheus.yaml - -******** -Validate -******** - -Setup port-forwarding for prometheus by executing the following command:: - - kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 & - -Run the scripts in ``clover/monitoring`` validates prometheus installation:: - - python clover/monitoring/validate.py - -It validates the installation with the following criterias - -#. [DONE] prometheus pod is in Running state -#. [DONE] prometheus is conneted to monitoring targets -#. [TODO] test collecting telemetry data from istio -#. [TODO] TBD diff --git a/docs/tracing.rst b/docs/tracing.rst deleted file mode 100644 index 79d686c..0000000 --- a/docs/tracing.rst +++ /dev/null @@ -1,44 +0,0 @@ -####### -Tracing -####### - -************ -Installation -************ - -Currently, we use the Jaeger tracing all-in-one Kubernetes template for development and testing, -which uses in-memory storage. It can be deployed to the istio-system namespace with the -following command:: - - kubectl apply -n istio-system -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml - -The standard Jaeger REST port is at 16686. To make this service available outside of the -Kubernetes cluster, use the following command:: - - kubectl expose -n istio-system deployment jaeger-deployment --port=16686 --type=NodePort - -Kubernetes will expose the Jaeger service on another port, which can be found with:: - - kubectl get svc -n istio-system - -An example listing from the command above is shown below where the Jaeger service is exposed -externally on port 30888:: - - istio-system jaeger-deployment NodePort 10.104.113.94 16686:30888/TCP - -Jaeger will be accessible using the host IP of the Kubernetes cluster and port provided. - -******** -Validate -******** - -The script in ``clover/tracing`` validates Jaeger installation:: - - python clover/tracing/validate.py - -It validates the installation with the following criteria: - -#. Existence of Jaeger all-in-one deployment using Kubernetes -#. Jaeger service is accessible using IP address and port configured in installation steps -#. Jaeger can retrieve default service listing for default Istio components -#. TBD - consider installation of production setup with cassandra or elastic search -- cgit 1.2.3-korg