mrk-andreev / demo-tsplayer

Ultra fast timeseries viewer with realtime aggregations. WebSockets, Quarkus and Redis Timeseries.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maintainability

demo-tsplayer

  • tsplayer-application ui+backend (svg + ws + quarkus + graalvm + redistimeseries)
  • tsplayer-datagen python script for uploading random data

Use tsplayer-deploy/docker-compose/docker-compose.yaml for quick start (port 8080).

version: '3'

services:
  app:
    image: markandreev/demo-tsplayer:latest
    depends_on:
      - "redis"
    ports:
      - "8080:8080"
    environment:
      REDIS_HOST: redis
      REDIS_PORT: 6379
  redis:
    image: "redislabs/redistimeseries:1.4.3"
  datagen:
    image: "markandreev/demo-tsplayer-datagen:latest"
    depends_on:
      - "app"
    environment:
      SERVICE_HOST: app:8080
      STEPS_COUNT: 10000000

Video

Architecture

Data player

Protocol

Request (json)

{
  "requestId": "<uuid>",
  "key": "<dataset name>",
  "from": "<min timestamp>",
  "to": "<max timestamp>",
  "aggregation": "<AVG, SUM, MIN, MAX, RANGE, COUNT, FIRST, LAST>"
}

Response (binary, avro)

{
  "requestId": "<from request>",
  "isSuccess": "<no errors>",
  "errorMessage": "<if not isSuccess than display error message>",
  "values": [
    {
      "timestamp": "<timestamp>",
      "value": "<double>"
    } 
  ]
}

About

Ultra fast timeseries viewer with realtime aggregations. WebSockets, Quarkus and Redis Timeseries.

License:MIT License


Languages

Language:Java 77.7%Language:JavaScript 14.1%Language:Python 3.9%Language:HTML 2.0%Language:Makefile 1.1%Language:Shell 0.6%Language:Dockerfile 0.6%