Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
1764726
Initial ViPPET API
p-zak Oct 6, 2025
c055f70
clean API a little
p-zak Oct 6, 2025
96fe5b8
Enable ViPPET API with basic endpoints
ktaube26 Oct 7, 2025
29dfdcf
Merge branch 'main' into initial-vippet-api
ktaube26 Oct 13, 2025
ffbdd03
[ViPPET] ui project skeleton, react, typescript, eslint, prettier (#1…
dlemiech Oct 13, 2025
8286c58
Merge branch 'main' into initial-vippet-api
ktaube26 Oct 14, 2025
59e5425
Fix import for download_file function
ktaube26 Oct 14, 2025
19357fc
[ViPPET] Enable CI on initial-vippet-api (#1072)
Oct 16, 2025
c2ec4a1
Implement new benchmark endpoint
ktaube26 Oct 8, 2025
e668340
Merge branch 'main' into initial-vippet-api
ktaube26 Oct 16, 2025
606fe8d
[ViPPET] Initial ViPPET API (#1061)
ktaube26 Oct 17, 2025
5327a60
Merge remote-tracking branch 'origin/main' into initial-vippet-api
p-zak Oct 22, 2025
54cef67
[ViPPET] Implement GET/POST pipeline endpoints (#1094)
ktaube26 Oct 23, 2025
dc993f8
[ViPPET] UI: added router, shadcn repo, rtk query (#1125)
dlemiech Oct 28, 2025
6845a12
[ViPPET] Add Instance Manager to the ViPPET API (#1119)
ktaube26 Oct 28, 2025
4e15db5
[ViPPET] Enable Prometheus and WebSocket metrics export in collector …
p-zak Oct 28, 2025
0eb605e
[ViPPET] Add OpenAPI schema generation (#1129)
ktaube26 Oct 28, 2025
d275f53
[ViPPET] Bump fastapi to 0.120.3 (#1144)
Oct 31, 2025
51a14a7
Merge remote-tracking branch 'origin/main' into initial-vippet-api
p-zak Oct 31, 2025
cae46b4
[ViPPET] UI api codegen (#1138)
dlemiech Oct 31, 2025
c651d2e
[ViPPET] Map physical model file paths to model names in API endpoint…
p-zak Oct 31, 2025
67b289d
[ViPPET] Separate pipeline description from gst invocation (#1160)
Nov 3, 2025
ddd21c6
[ViPPET] Force qmassa 1.0.1 install (#1161)
Nov 3, 2025
4bb044a
[ViPPET] Initial WebSocket Support for Metrics Streaming (#1167)
p-zak Nov 4, 2025
f2ab1d0
[ViPPET] Implement endpoint for recordings (#1163)
p-zak Nov 4, 2025
721abc8
[ViPPET] Refactor pipeline launch and benchmark methods, add error ha…
ktaube26 Nov 6, 2025
9e3a14d
[ViPPET] Remove Gradio-based UI implementation (#1178)
ktaube26 Nov 6, 2025
d4648b8
[ViPPET] Switch qmassa to FIFO streaming and refactor collector to ru…
p-zak Nov 6, 2025
4bb5f0e
[ViPPET] Bump `intel/dlstreamer` to `2025.2-ubuntu24-rc1` (#1181)
p-zak Nov 6, 2025
9d37c20
[ViPPET] Improve WebSocket stability, unify logging, add tests (#1180)
p-zak Nov 6, 2025
7235403
[ViPPET] Bump dependencies, optimize Dockerfiles, improve comments, a…
p-zak Nov 6, 2025
5e7ff3d
[ViPPET] Set /api/v1 as API root path and regenerate vippet.json (#1186)
p-zak Nov 6, 2025
dbe55d1
[ViPPET] Rename launch_string and launch_config (#1190)
Nov 7, 2025
2d34d40
[ViPPET] Regenerate openapi (#1194)
Nov 7, 2025
8997ca5
[ViPPET] Fix swapped predefined pipeline descriptions (#1193)
ktaube26 Nov 7, 2025
09c0113
[ViPPET] Fix missing response models in OpenAPI schema (#1191)
ktaube26 Nov 7, 2025
d627600
Model download sync with release branch (#1205)
bharagha Nov 9, 2025
d7a6c40
Defect fixes (Nov10) (#1210)
bharagha Nov 11, 2025
7094004
time-series-analytics: Updated the opcua server cert name
vkb1 Nov 11, 2025
3f9162d
time-series-analytics: Fix for bandit
vkb1 Nov 11, 2025
02374aa
time-series-analytics: Added rc1 refs (#1221)
vkb1 Nov 12, 2025
27a7dd3
DOCS-VSS-diagrams-redrawn-in-drawio-port25.2 (#1224)
kblaszczak-intel Nov 13, 2025
d0074de
Minor documentation updates (#1229)
bharagha Nov 13, 2025
2c99425
rc1 fixes on release branch (#1220)
Supriya-Krishnamurthi Nov 13, 2025
14d8509
time-series-analytics: Updated helm chart version (#1232)
sathyendranv Nov 14, 2025
9c8c7d5
Deprecated support for Vllm and TGI for EMF (#1233)
Supriya-Krishnamurthi Nov 14, 2025
4dac7ae
[ViPPET] Add /convert endpoints (#1201)
Nov 14, 2025
34e7eb8
[DLStreamer] Improve Gstreamer patching (#1241)
msmiatac Nov 14, 2025
a0f6f13
Load pipeline (#1185)
dlemiech Nov 14, 2025
dedfc79
chatqna-core: Update release notes (#1246)
hteeyeoh Nov 17, 2025
44fbdf2
[ViPPET] workaround for setting sink path (#1249)
Nov 17, 2025
25bf56d
[DLStreamer] Update GPU drivers (#1252)
nszczygl9 Nov 17, 2025
d3cb9c6
[ViPPET] export pipeline: as json and as converted string to gst (#1254)
dlemiech Nov 18, 2025
8fff143
[DOCS] Simplify the vss pages - port25.2 (#1263)
kblaszczak-intel Nov 18, 2025
c96e0a5
[DLStreamer] Add realsense libraries to dls final image (#1261)
mholowni Nov 18, 2025
6060965
[DLStreamer Pipeline Server Docs] Modify link to MQTT docs. (#1267)
nszczygl9 Nov 18, 2025
ba4dfb5
[ViPPET] Refactor benchmarking to support multi-pipeline stream execu…
ktaube26 Nov 18, 2025
187f31f
[ViPPET] Implement pipeline optimization endpoints (#1258)
p-zak Nov 18, 2025
398a4f1
time-series: Fixed high level arch docs issues (#1270)
sathyendranv Nov 19, 2025
54cd9ac
[DLStreamer] Update system requirements - add Windows ARL-H, remove F…
dmichalo Nov 19, 2025
957d739
[DLStreamer] Use OpenCV preproc to convert sparse tensors to contiguo…
dmichalo Nov 19, 2025
832e8c2
time-series-analytics: Fixed the input api error code (#1284)
pooja-intel Nov 20, 2025
1c26731
chatqna-core: Fix deprecated helm chart field schema (#1276)
hteeyeoh Nov 20, 2025
0f77243
Milvus components for RC2 (#1285)
llin60 Nov 20, 2025
e5849b1
time-series-analytics: Added rc2 tag (#1286)
vkb1 Nov 20, 2025
6ee01a9
Updated openvino version (#1273)
Supriya-Krishnamurthi Nov 20, 2025
7f67438
[DL Streamer Pipeline Server] use vah264lpenc when vah264enc is missi…
dmichalo Nov 20, 2025
f3fb29e
[DLStreamer Pipeline Server Helm] Update to the rc1 version (#1280)
mkobyli Nov 20, 2025
37b3c05
[DLStreamer] Deep SORT implementation (#1289)
dmichalo Nov 20, 2025
8ad92cc
[Multilevel-video-understanding] Update to release branch (#1287)
Johere Nov 21, 2025
52df580
[Multilevel-Video-Understanding] Add v2025.2.0 release notes (#1298)
Johere Nov 21, 2025
d532756
[Retriever Milvus] update GSG (#1300)
llin60 Nov 21, 2025
40ff339
[DLStreamer Pipeline Server] Update Helm version to 2025.2.0-rc1 in d…
dmichalo Nov 21, 2025
b177f9a
[DLStreamer] Optimizer - updating release branch (#1303)
pbartosik Nov 21, 2025
d679114
[DLStreamer] Add patches to GStreamer (#1306)
mholowni Nov 21, 2025
43023ff
[DLStreamer] Bump DLStreamer version to 2025.2.0 (#1290) (#1307)
dmichalo Nov 21, 2025
c8a8e98
[DLStreamer] Update mars-small downloading method (#1308) (#1309)
dmichalo Nov 21, 2025
f524a77
[DLStreamer] Add motion detect rel2025.2.0 (#1304)
msmiatac Nov 21, 2025
8e607f1
[ViPPET] Extract execution Performance and Density Tests from Pipelin…
ktaube26 Nov 21, 2025
7e5b863
[DLStreamer] Fix potential memory leaks (#1314)
OskarFiedot Nov 21, 2025
5e4e91d
[DLS] Modify download_public_models.sh (#1313)
nszczygl9 Nov 21, 2025
12c7540
[ViPPET] Use pipeline ID as unique identifier for pipelines (#1315)
ktaube26 Nov 21, 2025
efd6aef
[DLStreamer Pipeline Server] Fix trivy scans (#1318)
mholowni Nov 21, 2025
ce170e7
Model download ownership updates (#1321)
bharagha Nov 22, 2025
023c89d
Model download fixes (#1247)
14pankaj Nov 23, 2025
2af0fa7
[VSS & Dependencies] Streamlining new features/fix/updates (#1320)
krish918 Nov 24, 2025
fe90d16
Follows PR#1322 on mainline (#1323)
bharagha Nov 24, 2025
a1a6af9
Bump langchain-core (#1330)
hteeyeoh Nov 24, 2025
ec4dddc
[Video-chunking-utils] add release notes (#1332)
Johere Nov 24, 2025
b07a99f
time-series-analytics: Updated opcua alert error code (#1331)
pooja-intel Nov 24, 2025
c2215c2
[DLSPS] Add rtsp connection error recovery mechanism (#1338)
mholowni Nov 24, 2025
f937a3c
[DLStreamer] Fix coverity scan issue in gvawatermarkimpl.cpp (#1343)
msmiatac Nov 24, 2025
918d0a0
[DLStreamer] Upgrade pip. (#1344)
nszczygl9 Nov 24, 2025
c113b50
[DLStreamer] Reference counting fix (#1350)
pbartosik Nov 24, 2025
7bce781
[DLStreamer] Fix download_public_models script when downloading all m…
dmichalo Nov 24, 2025
99fdee7
[VIPPET] import pipeline: from json file or gst launch string (#1275)
dlemiech Nov 24, 2025
89edc12
[DLStreamer] Fix metadata handling in gvamotiondetect (#1351)
msmiatac Nov 24, 2025
215e1b7
[DOCS] add release notes (#1335)
llin60 Nov 25, 2025
aa126b5
time-series-analytics: Updated the link in helm/readme (#1353)
vkb1 Nov 25, 2025
3e157b0
time-series-analytics: Added How to configure doc (#1337)
sathyendranv Nov 25, 2025
fd582e6
Dependencies update (#1328)
14pankaj Nov 25, 2025
9ebffc0
time-series-analytics: Updated Thirdparty file with licenses (#1356)
sathyendranv Nov 25, 2025
b40731c
Update docsum helmchart version (#1359)
madhuri-rai07 Nov 25, 2025
170ddd9
[DLStreamer] Update inference elements description (#1360)
tbujewsk Nov 25, 2025
46c1c06
[DOCS] Fixing references in Vector Retriever docs for 2025.2 (#1369)
sgolebiewski-intel Nov 25, 2025
77f44da
[DLStreamer] Enhance latency_tracer documentation (#1366)
dmichalo Nov 25, 2025
66bb457
[DLStreamer] Add missing Windows compilation steps to docs (#1363) (#…
marcin-wadolkowski Nov 25, 2025
266b46b
[DLStreamer] Update Install Guide about link to Windows installation …
marcin-wadolkowski Nov 25, 2025
9ef5efd
[DOCS] Fixing issues with docs in DL Streamer (#1373)
sgolebiewski-intel Nov 25, 2025
40a62b1
time-series-analytics: Fixed few dbs issues (#1376)
vkb1 Nov 26, 2025
368c1f7
[ViPPET] Bump DLStreamer base image to `rc2` and align ViPPET with up…
p-zak Nov 26, 2025
0494d9e
[ViPPET] Predefined pipeline definitions adjustments (#1381)
ktaube26 Nov 26, 2025
eb9b96d
time-series-analytics: Updated README-dockerhub.md (#1384)
vkb1 Nov 26, 2025
cb19111
[DLStreamer] Update GPU drivers to 25.40.xxx version. (#1385)
nszczygl9 Nov 26, 2025
c909e57
[VSS] Fix: Latency issue and Model Loading error in Video-Ingestion (…
krish918 Nov 26, 2025
58dfdd2
[Robotics] Humanoid/ethercat (#1379)
jouillet Nov 26, 2025
6eada02
Bring the release branch up to date with main (#1370)
bhardwaj-nakul Nov 26, 2025
92e68d4
[Multilevel-video-understanding] Update GSG: docker hub link to relea…
Johere Nov 27, 2025
728543f
[Dataprep Milvus][Retriever Milvus][Release]add static images tags fo…
llin60 Nov 27, 2025
51bf226
[DLSPS] Change BASE_IMAGE to rc2. (#1397)
nszczygl9 Nov 27, 2025
0354a4f
[DLStreamer Pipeline Server] Update helm to the rc2 version (#1374)
mkobyli Nov 27, 2025
6362b32
[ViPPET] Pipeline validation API and validator tool (#1352)
p-zak Nov 27, 2025
2d1553f
[ViPPET] Add video output path tracking for frontend access (#1383)
ktaube26 Nov 27, 2025
922d4e2
[ViPPET] Update default GPU ID in video output configurations to 0 (#…
ktaube26 Nov 27, 2025
268c558
[ViPPET] Add partial update functionality for pipelines (#1400)
ktaube26 Nov 27, 2025
2ad8522
[DLStreamer] Enable Deep SORT parameter customization (#1399)
tbujewsk Nov 27, 2025
1e7ceaa
Update VDMS image tag to v2.12.0 in values.yaml and compose.search.ya…
bhardwaj-nakul Nov 28, 2025
f18aaa5
fix: Added registry and TAG updates (#1409)
14pankaj Nov 28, 2025
6f95e56
EMT documentation updates for VSS (#1412)
bharagha Nov 28, 2025
cdc5251
Chart name updates (#1413)
14pankaj Nov 28, 2025
76503be
[ViPPET] Return pipeline ID in API response and enforce strict versio…
ktaube26 Nov 28, 2025
14a8a1d
remove flaky test
p-zak Nov 28, 2025
0047f88
[ViPPET] Fix infinite loop in density search with high fps_floor (#1404)
ktaube26 Nov 28, 2025
d283049
[ViPPET] Implement thread-safe access for pipeline management operati…
ktaube26 Nov 28, 2025
81e903b
[ViPPET] Implement inactivity timeout for PipelineRunner to handle ha…
ktaube26 Nov 28, 2025
c462465
[ViPPET] Revert gvafpscounter starting-frame parameter (#1421)
ktaube26 Nov 28, 2025
cc0e123
[ViPPET] Update API spec (#1420)
p-zak Nov 28, 2025
c4124ab
Merge branch 'main' into initial-vippet-api
ktaube26 Nov 28, 2025
344259a
Merge branch 'release-2025.2.0' into initial-vippet-api
ktaube26 Nov 28, 2025
39f6ce0
Revert "Merge branch 'release-2025.2.0' into initial-vippet-api"
ktaube26 Nov 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/vippet-pr-workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
branches:
- main
- release-*
- initial-vippet-api
paths:
- 'tools/visual-pipeline-and-platform-evaluation-tool/**'
workflow_dispatch:
Expand All @@ -24,7 +25,7 @@ jobs:
fail-fast: false
uses: open-edge-platform/orch-ci/.github/workflows/pre-merge.yml@070a95caeeed643fc9d1a34c11eac78179ce136d # 0.1.34
with:
runs_on: ubuntu-24.04
runs_on: ubuntu-24.04-16core-64GB
bootstrap_tools: 'nodejs'
run_version_check: false
run_build: false
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.gradio/*
.idea/*
tools/visual-pipeline-and-platform-evaluation-tool/.venv/*
tools/visual-pipeline-and-platform-evaluation-tool/intel/*
tools/visual-pipeline-and-platform-evaluation-tool/models/*
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
__pycache__
.coverage
.env
.idea
shared/collector-signals/
shared/models/output/*
shared/videos/
shared/videos/input/*
shared/videos/video-generator/*
62 changes: 33 additions & 29 deletions tools/visual-pipeline-and-platform-evaluation-tool/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ $(VENV_DIR): $(PROJECT_NAME)/requirements.txt ## Create Python venv
python3 -m venv $@ ;\
set +u; . ./$@/bin/activate; set -u ;\
python -m pip install --upgrade pip ;\
python -m pip install -r $(PROJECT_NAME)/requirements-dev.txt
python -m pip install -r $(PROJECT_NAME)/requirements-dev.txt ;\
python -m pip install -r video_generator/requirements.txt # needed for pyright checks

all: lint build run test ## Run lint, build, run and test

Expand Down Expand Up @@ -56,76 +57,79 @@ pyright: $(VENV_DIR) ## Run pyright type checker
pyright --version ;\
pyright .

# Environment setup target: always run before build/run targets that need .env
env-setup:
generate_openapi: $(VENV_DIR) ## Generate OpenAPI schema file
set +u; . ./$</bin/activate; set -u ;\
cd $(PROJECT_NAME) ;\
PYTHONPATH=. SUPPORTED_MODELS_FILE=../shared/models/supported_models.yaml RECORDINGS_PATH=../shared/videos/input python ../generate_openapi.py

env-setup: ## Environment setup target: always run before build/run targets that need .env and shared dirs
mkdir -p shared/collector-signals && chmod o+w shared/collector-signals
mkdir -p shared/models/output && chmod o+w shared/models/output
mkdir -p shared/videos/input && chmod o+w shared/videos/input
mkdir -p shared/videos/video-generator && chmod o+w shared/videos/video-generator
./setup_env.sh

build: env-setup ## Build core images (vippet-app, vippet-collector)
docker compose build
build: env-setup ## Build core images (vippet-app, vippet-collector, vippet-ui)
. .env && docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml build

build-dev: env-setup ## Build core dev images (vippet-app, vippet-collector)
docker compose -f $(COMPOSE_FILE) -f $(DEV_COMPOSE_FILE) build
build-dev: env-setup ## Build core dev images (vippet-app, vippet-collector, vippet-ui)
. .env && docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml -f $(DEV_COMPOSE_FILE) build

build-videogenerator: env-setup ## Build videogenerator image
docker compose build videogenerator
. .env && docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml build videogenerator

build-models: env-setup ## Build model image
docker compose build models
. .env && docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml build models

docker-build: build build-videogenerator build-models ## Build all images

run: env-setup install-models-once ## Run the docker compose services
docker compose up -d
. .env && docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml up -d

run-videogenerator: env-setup build-videogenerator ## Run only the videogenerator service
mkdir -p shared/videos && chmod o+w shared/videos
docker compose up -d videogenerator
. .env && docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml up -d videogenerator

run-dev: env-setup install-models-once ## Run the docker compose services for development
docker compose -f $(COMPOSE_FILE) -f $(DEV_COMPOSE_FILE) up -d
. .env && docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml -f $(DEV_COMPOSE_FILE) up -d

test: env-setup ## Run tests and generate coverage report
# Run tests using the vippet-cpu container (tests are device agnostic)
# Run tests using the cpu profile (tests are device agnostic)
# Override DOCKER_TAG with '-test' suffix only for this docker compose run
TARGET=test DOCKER_TAG="test" docker compose -f $(COMPOSE_FILE) run \
--build --rm --no-deps --volume $(PROJECT_DIR):/home/dlstreamer/vippet vippet-cpu bash -c "\
. .env && TARGET=test DOCKER_TAG="test" docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml run \
--build --rm --no-deps --volume $(PROJECT_DIR):/home/dlstreamer/vippet vippet bash -c "\
cd $(PROJECT_NAME) && \
python -m coverage run --source=./ --data-file=/tmp/.vippet-coverage -m unittest discover -v -s ./tests -p '*_test.py' && \
python -m coverage report --data-file=/tmp/.vippet-coverage --omit=*/config-3.py,*/config.py,*_test.py"

install-models-once: env-setup ## Handle models download and installation (once)
mkdir -p shared/models/output && chmod o+w shared/models/output
MODEL_INSTALLATION=once docker compose run --rm -it models
. .env && MODEL_INSTALLATION=once docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml run --rm -it models

install-models-force: env-setup ## Handle models download and installation (force)
mkdir -p shared/models/output && chmod o+w shared/models/output
MODEL_INSTALLATION=force docker compose run --rm -it models
. .env && MODEL_INSTALLATION=force docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml run --rm -it models

install-models-all: env-setup ## Install all models automatically (no dialog)
mkdir -p shared/models/output && chmod o+w shared/models/output
MODEL_INSTALLATION=all docker compose run --rm -it models
. .env && MODEL_INSTALLATION=all docker compose -f $(COMPOSE_FILE) -f compose.$$COMPOSE_PROFILES.yml run --rm -it models

shell: env-setup ## Open shell in specified container (i.e. make shell SERVICE=vippet)
docker exec -it $(SERVICE) bash

shell-vippet: env-setup ## Open shell in vippet container
shell-vippet: ## Open shell in vippet container
$(MAKE) shell SERVICE=vippet

shell-models: env-setup ## Open shell in models container
shell-models: ## Open shell in models container
$(MAKE) shell SERVICE=models

shell-collector: env-setup ## Open shell in collector container
shell-collector: ## Open shell in collector container
$(MAKE) shell SERVICE=collector

shell-videogenerator: env-setup ## Open shell in videogenerator container
shell-videogenerator: ## Open shell in videogenerator container
$(MAKE) shell SERVICE=videogenerator

stop: ## Stop the docker compose services
@VIPPET_SERVICE=$$(docker compose ps --services | grep "^vippet-" | head -n 1 || echo ""); \
docker compose down models collector videogenerator $$VIPPET_SERVICE
docker compose down models collector videogenerator vippet-ui vippet

clean: ## Clean all build artifacts
rm -rf shared/models/output/ shared/videos/
rm -rf shared/collector-signals shared/models/output/ shared/videos/input shared/videos/video-generator

help: ## Print help for each target
@echo ViPPET make targets
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,29 +1,61 @@
# Copyright (C) 2025 Intel Corporation

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

# http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions
# and limitations under the License.

# SPDX-License-Identifier: Apache-2.0

# Base image for building qmassa
FROM docker.io/library/rust:1.88 AS qmassa

# Set environment variable to non-interactive mode (avoids some prompts)
ENV DEBIAN_FRONTEND=noninteractive

# Install necessary dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libudev-dev && \
apt-get install --yes --no-install-recommends libudev-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

RUN cargo install --locked --git https://github.com/ulissesf/qmassa.git --tag v1.0.1
# Install qmassa
RUN cargo install --locked [email protected]

# Final image for the collector
FROM docker.io/library/telegraf:1.36.3 AS collector

# Copy qmassa binary from the build stage
COPY --from=qmassa /usr/local/cargo/bin/qmassa /usr/local/bin/qmassa

# Set environment variable to non-interactive mode (avoids some prompts)
ENV DEBIAN_FRONTEND=noninteractive

# Install necessary dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3 && \
apt-get install --yes --no-install-recommends python3 supervisor && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Set working directory
WORKDIR /app

# Copy configuration and scripts
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY telegraf.conf /etc/telegraf
COPY qmassa_reader.py qmassa_reader.py
COPY read_cpu_freq.sh read_cpu_freq.sh
RUN chmod +x read_cpu_freq.sh
COPY entrypoint.sh /entrypoint.sh

# Make scripts executable
RUN chmod +x read_cpu_freq.sh /entrypoint.sh

# nosemgrep: missing-user-entrypoint
ENTRYPOINT ["/usr/bin/telegraf", "--config", "/etc/telegraf/telegraf.conf"]
# Set the entrypoint to the custom script
CMD ["/entrypoint.sh"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash

# Ensure the fps.txt file exists and is initialized to 0.0 and can be written to by vippet
echo "0.0" > /app/.collector-signals/fps.txt
chmod o+w /app/.collector-signals/fps.txt

# Ensure the named pipe for qmassa exists and is writable
if [ ! -p /app/qmassa.fifo ]; then
mkfifo /app/qmassa.fifo
fi
chmod 666 /app/qmassa.fifo

# Telegraf and qmassa are started and managed by supervisord
/usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
Loading
Loading