summaryrefslogtreecommitdiffstats
path: root/docs/sections/apis/ves-hv.rst
blob: 2045b6bad6a7357e58f0239983a42f5bc1393bd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

========================
HV-VES (High Volume VES)
========================

:Date: 2018-09-24

.. contents::
    :depth: 3
..

Overview
========

Component description can be found under `HV-VES Collector`_.

.. _HV-VES Collector: ../services/ves-hv/index.html


TCP Endpoint
============

HV-VES is exposed as NodePort service on Kubernetes cluster on port 30222/tcp.
It uses plain TCP connections tunneled in SSL/TLS or can be run in insecure manner without data encryption on the socket.
Without TLS client authentication/authorization is not possible.
Connections are stream-based (as opposed to request-based) and long running.

Payload is binary-encoded, currently using Google Protocol Buffers representation of the VES Common Header.

.. literalinclude:: VesEvent.proto
    :language: protobuf

The PROTO file, which contains the VES CommonHeader, comes with a binary-type Payload parameter, where domain-specific
data shall be placed. Domain-specific data are encoded as well with GPB, and they do require a domain-specific
PROTO file to decode the data.

HV-VES makes routing decisions based mostly on the content of the **Domain** parameter in VES Common Header.


Healthcheck
===========

Inside HV-VES docker container runs small http service for healthcheck - exact port for this service can be configured
at deployment using `--health-check-api-port` command line option.

This service exposes single endpoint **GET /health/ready** which returns **HTTP 200 OK** in case HV-VES is healthy
and ready for connections. Otherwise it returns **HTTP 503 Service Unavailable** with short reason of unhealthiness.