Compare commits

..

12 Commits

Author SHA1 Message Date
Gitea Actions Bot
14c0e2e9b3 Auto-update README with current k8s applications
Some checks failed
Terraform / Terraform (pull_request) Failing after 2s
Generated by CI/CD workflow on 2026-04-06 12:01:57

This PR updates the README.md file with the current list of applications found in the k8s/ directory structure.
2026-04-06 12:01:57 +00:00
Ultradesu
a54e954921 Added telemt dashboard
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 12s
Check with kubeconform / lint (push) Successful in 13s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-04-06 13:01:16 +01:00
Ultradesu
b1b0042e80 Added telemt
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 12s
Check with kubeconform / lint (push) Successful in 13s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-06 12:24:19 +01:00
Ultradesu
e1230f29b3 Added telemt
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 11s
Check with kubeconform / lint (push) Successful in 12s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-06 12:15:28 +01:00
Ultradesu
40d908d1ba Added telemt
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 11s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-04-06 12:09:42 +01:00
Ultradesu
1e6a9affad Added telemt
Some checks failed
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 13s
Auto-update README / Generate README and Create MR (push) Has been cancelled
2026-04-06 12:09:14 +01:00
Ultradesu
f2e8923285 Added telemt
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 12s
Check with kubeconform / lint (push) Successful in 13s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-06 12:01:49 +01:00
Ultradesu
b89b5cc6a9 Added telemt
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 11s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-04-06 11:54:30 +01:00
Ultradesu
b032852dd8 Added telemt
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 20s
Check with kubeconform / lint (push) Successful in 16s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-04-06 11:52:36 +01:00
ab
3b94cc92ea Update k8s/apps/furumi-dev/web-player.yaml
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 12s
Check with kubeconform / lint (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 21s
2026-03-23 13:43:59 +00:00
ab
548f306bf7 Update k8s/apps/furumi-dev/external-secrets.yaml
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 15s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 24s
2026-03-23 13:42:14 +00:00
ab
cf43eb138a Update k8s/apps/furumi-dev/external-secrets.yaml
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 14s
Check with kubeconform / lint (push) Successful in 10s
Auto-update README / Generate README and Create MR (push) Successful in 26s
2026-03-23 13:40:48 +00:00
10 changed files with 801 additions and 1 deletions

View File

@@ -20,6 +20,8 @@ spec:
{{ .session_secret }}
PG_STRING: |-
postgres://furumi_dev:{{ .pg_pass }}@psql.psql.svc:5432/furumi_dev
PLAYER_API_KEY: |-
{{ .player_api_key }}
data:
- secretKey: client_id
sourceRef:
@@ -45,6 +47,14 @@ spec:
remoteRef:
key: 960735e6-2cc9-4b68-9bd3-e6786e5a0cd6
property: fields[2].value
- secretKey: player_api_key
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
key: 960735e6-2cc9-4b68-9bd3-e6786e5a0cd6
property: fields[3].value
- secretKey: pg_pass
sourceRef:
storeRef:

View File

@@ -51,6 +51,11 @@ spec:
secretKeyRef:
name: furumi-ng-creds
key: PG_STRING
- name: FURUMI_PLAYER_API_KEY
valueFrom:
secretKeyRef:
name: furumi-ng-creds
key: PLAYER_API_KEY
- name: FURUMI_PLAYER_STORAGE_DIR
value: "/media"
- name: RUST_LOG

View File

@@ -5,7 +5,11 @@ resources:
- ./app.yaml
- ./rbac.yaml
- ./daemonset.yaml
- ./telemt-daemonset.yaml
- ./external-secrets.yaml
- ./telemt-external-secrets.yaml
- ./telemt-service.yaml
- ./telemt-servicemonitor.yaml
- ./service.yaml
- ./secret-reader.yaml
# - ./storage.yaml

View File

@@ -23,7 +23,7 @@ spec:
imagePullPolicy: Always
args:
- "--secrets"
- "mtproxy-links"
- "mtproxy-links,telemt-links"
- "--namespace"
- "mtproxy"
- "--port"

View File

@@ -0,0 +1,115 @@
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: telemt
labels:
app: telemt
spec:
selector:
matchLabels:
app: telemt
updateStrategy:
type: RollingUpdate
template:
metadata:
labels:
app: telemt
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: mtproxy
operator: Exists
serviceAccountName: mtproxy
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
initContainers:
- name: register-proxy
image: bitnami/kubectl:latest
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: SECRET
valueFrom:
secretKeyRef:
name: tgproxy-secret
key: SECRET
- name: TELEMT_PORT
valueFrom:
secretKeyRef:
name: telemt-secret
key: PORT
command:
- /bin/bash
- -c
- |
set -e
NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
SERVER=$(kubectl get node "${NODE_NAME}" -o jsonpath='{.metadata.labels.mtproxy}')
if [ -z "${SERVER}" ]; then
echo "ERROR: node ${NODE_NAME} has no mtproxy label"
exit 1
fi
# Build ee-prefixed secret: ee + secret + hex(tls_domain)
# "ya.ru" = 79612e7275
EE_SECRET="ee${SECRET}79612e7275"
LINK="tg://proxy?server=${SERVER}&port=${TELEMT_PORT}&secret=${EE_SECRET}"
echo "Registering telemt: ${SERVER} -> ${LINK}"
if kubectl get secret telemt-links -n "${NAMESPACE}" &>/dev/null; then
kubectl patch secret telemt-links -n "${NAMESPACE}" \
--type merge -p "{\"stringData\":{\"${SERVER}\":\"${LINK}\"}}"
else
kubectl create secret generic telemt-links -n "${NAMESPACE}" \
--from-literal="${SERVER}=${LINK}"
fi
echo "Done"
containers:
- name: telemt
image: ghcr.io/telemt/telemt:latest
imagePullPolicy: Always
ports:
- name: proxy
containerPort: 30444
protocol: TCP
- name: api
containerPort: 9091
protocol: TCP
workingDir: /run/telemt
env:
- name: RUST_LOG
value: info
volumeMounts:
- name: workdir
mountPath: /run/telemt
- name: config
mountPath: /run/telemt/config.toml
subPath: config.toml
readOnly: true
- name: etcdir
mountPath: /etc/telemt
securityContext:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
volumes:
- name: config
secret:
secretName: telemt-secret
items:
- key: config.toml
path: config.toml
- name: workdir
emptyDir:
medium: Memory
sizeLimit: 1Mi
- name: etcdir
emptyDir:
medium: Memory
sizeLimit: 1Mi

View File

@@ -0,0 +1,59 @@
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: telemt-secret
spec:
target:
name: telemt-secret
deletionPolicy: Delete
template:
type: Opaque
data:
SECRET: |-
{{ .secret }}
PORT: "30444"
config.toml: |
[general]
use_middle_proxy = true
log_level = "normal"
[general.modes]
classic = false
secure = false
tls = true
[general.links]
show = "*"
public_port = 30444
[server]
port = 30444
metrics_port = 9090
metrics_whitelist = ["0.0.0.0/0"]
[server.api]
enabled = true
listen = "0.0.0.0:9091"
whitelist = ["0.0.0.0/0"]
[[server.listeners]]
ip = "0.0.0.0"
[censorship]
tls_domain = "ya.ru"
mask = true
tls_emulation = true
tls_front_dir = "tlsfront"
[access.users]
user = "{{ .secret }}"
data:
- secretKey: secret
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
key: 58a37daf-72d8-430d-86bd-6152aa8f888d
property: fields[0].value

View File

@@ -0,0 +1,17 @@
---
apiVersion: v1
kind: Service
metadata:
name: telemt-metrics
labels:
app: telemt
spec:
type: ClusterIP
clusterIP: None
selector:
app: telemt
ports:
- port: 9090
targetPort: 9090
protocol: TCP
name: metrics

View File

@@ -0,0 +1,21 @@
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: telemt-metrics
labels:
app: telemt
release: prometheus
spec:
selector:
matchLabels:
app: telemt
endpoints:
- port: metrics
path: /metrics
interval: 30s
scrapeTimeout: 10s
honorLabels: true
namespaceSelector:
matchNames:
- mtproxy

View File

@@ -7,6 +7,7 @@ resources:
- grafana-alerting-configmap.yaml
- alertmanager-config.yaml
- furumi-dashboard-cm.yaml
- telemt-dashboard-cm.yaml
helmCharts:
- name: kube-prometheus-stack

View File

@@ -0,0 +1,568 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: telemt-dashboard
labels:
grafana_dashboard: "1"
data:
telemt.json: |-
{
"annotations": {
"list": []
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"title": "Uptime",
"type": "stat",
"gridPos": { "h": 4, "w": 4, "x": 0, "y": 0 },
"id": 1,
"options": {
"colorMode": "value",
"graphMode": "none",
"reduceOptions": { "calc": "lastNotNull", "fields": "", "values": false },
"textMode": "auto"
},
"fieldConfig": {
"defaults": {
"unit": "s",
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "red", "value": null },
{ "color": "green", "value": 60 }
]
}
},
"overrides": []
},
"targets": [
{
"expr": "telemt_uptime_seconds{instance=~\"$instance\"}",
"legendFormat": "{{instance}}",
"refId": "A"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Active ME Writers",
"type": "stat",
"gridPos": { "h": 4, "w": 4, "x": 4, "y": 0 },
"id": 2,
"options": {
"colorMode": "value",
"graphMode": "area",
"reduceOptions": { "calc": "lastNotNull", "fields": "", "values": false },
"textMode": "auto"
},
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "red", "value": null },
{ "color": "green", "value": 1 }
]
}
},
"overrides": []
},
"targets": [
{
"expr": "telemt_me_writers_active_current{instance=~\"$instance\"}",
"legendFormat": "{{instance}}",
"refId": "A"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Buffer Pool",
"type": "stat",
"gridPos": { "h": 4, "w": 4, "x": 8, "y": 0 },
"id": 3,
"options": {
"colorMode": "value",
"graphMode": "none",
"reduceOptions": { "calc": "lastNotNull", "fields": "", "values": false },
"textMode": "auto"
},
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
}
},
"overrides": []
},
"targets": [
{
"expr": "telemt_buffer_pool_buffers_total{instance=~\"$instance\", kind=\"in_use\"}",
"legendFormat": "{{instance}} in_use",
"refId": "A"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Connections (total / bad)",
"type": "stat",
"gridPos": { "h": 4, "w": 6, "x": 12, "y": 0 },
"id": 4,
"options": {
"colorMode": "value",
"graphMode": "area",
"reduceOptions": { "calc": "lastNotNull", "fields": "", "values": false },
"textMode": "auto"
},
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
}
},
"overrides": []
},
"targets": [
{
"expr": "telemt_connections_total{instance=~\"$instance\"}",
"legendFormat": "{{instance}} total",
"refId": "A"
},
{
"expr": "telemt_connections_bad_total{instance=~\"$instance\"}",
"legendFormat": "{{instance}} bad",
"refId": "B"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Connections Rate",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 4 },
"id": 10,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"unit": "cps",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "rate(telemt_connections_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} accepted",
"refId": "A"
},
{
"expr": "rate(telemt_connections_bad_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} bad",
"refId": "B"
},
{
"expr": "rate(telemt_handshake_timeouts_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} hs timeout",
"refId": "C"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Upstream Connect",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 4 },
"id": 11,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"unit": "cps",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "rate(telemt_upstream_connect_success_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} success",
"refId": "A"
},
{
"expr": "rate(telemt_upstream_connect_fail_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} fail",
"refId": "B"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Upstream Connect Duration (success)",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 12 },
"id": 12,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "bars",
"fillOpacity": 50,
"stacking": { "mode": "normal" }
},
"unit": "short",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "increase(telemt_upstream_connect_duration_success_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} {{bucket}}",
"refId": "A"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "ME Writers & Pool",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 12 },
"id": 13,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "telemt_me_writers_active_current{instance=~\"$instance\"}",
"legendFormat": "{{instance}} active",
"refId": "A"
},
{
"expr": "telemt_me_writers_warm_current{instance=~\"$instance\"}",
"legendFormat": "{{instance}} warm",
"refId": "B"
},
{
"expr": "telemt_pool_drain_active{instance=~\"$instance\"}",
"legendFormat": "{{instance}} draining",
"refId": "C"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Per-User Active Connections",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 20 },
"id": 20,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "telemt_user_connections_current{instance=~\"$instance\"}",
"legendFormat": "{{instance}} {{user}}",
"refId": "A"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Per-User Traffic",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 20 },
"id": 21,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"unit": "Bps",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "rate(telemt_user_octets_from_client{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} {{user}} rx",
"refId": "A"
},
{
"expr": "rate(telemt_user_octets_to_client{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} {{user}} tx",
"refId": "B"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "DC→Client Batching",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 28 },
"id": 30,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"unit": "Bps",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "rate(telemt_me_d2c_payload_bytes_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} payload",
"refId": "A"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "ME Errors & Anomalies",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 28 },
"id": 31,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"unit": "cps",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "rate(telemt_me_reconnect_attempts_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} reconnect",
"refId": "A"
},
{
"expr": "rate(telemt_me_handshake_reject_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} hs reject",
"refId": "B"
},
{
"expr": "rate(telemt_me_crc_mismatch_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} crc mismatch",
"refId": "C"
},
{
"expr": "rate(telemt_desync_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{instance}} desync",
"refId": "D"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Per-User Unique IPs",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 36 },
"id": 40,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "telemt_user_unique_ips_current{instance=~\"$instance\"}",
"legendFormat": "{{instance}} {{user}} active",
"refId": "A"
},
{
"expr": "telemt_user_unique_ips_recent_window{instance=~\"$instance\"}",
"legendFormat": "{{instance}} {{user}} recent",
"refId": "B"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
},
{
"title": "Conntrack",
"type": "timeseries",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 36 },
"id": 41,
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"pointSize": 5,
"showPoints": "auto"
},
"unit": "cps",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "list", "placement": "bottom" }
},
"targets": [
{
"expr": "rate(telemt_conntrack_delete_total{instance=~\"$instance\", result=\"attempt\"}[5m])",
"legendFormat": "{{instance}} delete attempt",
"refId": "A"
},
{
"expr": "rate(telemt_conntrack_delete_total{instance=~\"$instance\", result=\"error\"}[5m])",
"legendFormat": "{{instance}} delete error",
"refId": "B"
},
{
"expr": "telemt_conntrack_event_queue_depth{instance=~\"$instance\"}",
"legendFormat": "{{instance}} queue depth",
"refId": "C"
}
],
"datasource": { "type": "prometheus", "uid": "${datasource}" }
}
],
"refresh": "30s",
"schemaVersion": 39,
"tags": ["telemt", "mtproxy", "telegram"],
"templating": {
"list": [
{
"current": {},
"hide": 0,
"includeAll": false,
"label": "Datasource",
"multi": false,
"name": "datasource",
"options": [],
"query": "prometheus",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"type": "datasource"
},
{
"current": {},
"datasource": { "type": "prometheus", "uid": "${datasource}" },
"definition": "label_values(telemt_uptime_seconds, instance)",
"hide": 0,
"includeAll": true,
"label": "Instance",
"multi": true,
"name": "instance",
"query": "label_values(telemt_uptime_seconds, instance)",
"refresh": 2,
"regex": "",
"skipUrlSync": false,
"sort": 1,
"type": "query"
}
]
},
"time": { "from": "now-6h", "to": "now" },
"title": "Telemt MTProxy",
"uid": "telemt-mtproxy"
}