blob: 799f92d4a89bffcf80309ef9fd70adbca960ff2c [file] [log] [blame]
Piotr Jaszczyk19736a92018-09-24 11:27:58 +02001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. http://creativecommons.org/licenses/by/4.0
3
4========================
5HV-VES (High Volume VES)
6========================
7
Piotr Jaszczyk2df4b8c2018-10-05 10:56:38 +02008:Date: 2018-10-05
Piotr Jaszczyk19736a92018-09-24 11:27:58 +02009
10.. contents::
11 :depth: 3
12..
13
14Overview
15========
16
Filip Krzywkacbd2ded2018-09-25 14:43:18 +020017Component description can be found under `HV-VES Collector`_.
18
Piotr Jaszczyk2df4b8c2018-10-05 10:56:38 +020019.. _HV-VES Collector: ../../services/ves-hv/index.html
Filip Krzywkacbd2ded2018-09-25 14:43:18 +020020
21
22TCP Endpoint
23============
24
25HV-VES is exposed as NodePort service on Kubernetes cluster on port 30222/tcp.
26It uses plain TCP connections tunneled in SSL/TLS or can be run in insecure manner without data encryption on the socket.
27Without TLS client authentication/authorization is not possible.
28Connections are stream-based (as opposed to request-based) and long running.
29
Piotr Jaszczyk2df4b8c2018-10-05 10:56:38 +020030Communication is wrapped with thin Wire Transfer Protocol, which mainly provides delimitation.
31
32.. literalinclude:: WTP.asn
33 :language: asn
34
Filip Krzywkacbd2ded2018-09-25 14:43:18 +020035Payload is binary-encoded, currently using Google Protocol Buffers representation of the VES Common Header.
36
37.. literalinclude:: VesEvent.proto
38 :language: protobuf
39
40The PROTO file, which contains the VES CommonHeader, comes with a binary-type Payload parameter, where domain-specific
41data shall be placed. Domain-specific data are encoded as well with GPB, and they do require a domain-specific
42PROTO file to decode the data.
43
44HV-VES makes routing decisions based mostly on the content of the **Domain** parameter in VES Common Header.
45
46
47Healthcheck
48===========
49
50Inside HV-VES docker container runs small http service for healthcheck - exact port for this service can be configured
51at deployment using `--health-check-api-port` command line option.
52
53This service exposes single endpoint **GET /health/ready** which returns **HTTP 200 OK** in case HV-VES is healthy
54and ready for connections. Otherwise it returns **HTTP 503 Service Unavailable** with short reason of unhealthiness.
55
56
57
58
Piotr Jaszczyk19736a92018-09-24 11:27:58 +020059