Skip to content

Commit

Permalink
Added instructions for VM based install
Browse files Browse the repository at this point in the history
Added extra documentation, openAPI, and grafan instructions

Updated documentation and added openAPI and grafana settings

Updated documentation and added openAPI and grafana settings

Updated documentation and added openAPI and grafana settings

Updated documentation and added openAPI and grafana settings
  • Loading branch information
rraks committed Feb 13, 2020
1 parent 5c6a70f commit 04e7601
Show file tree
Hide file tree
Showing 3 changed files with 1,900 additions and 1,533 deletions.
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# IUVX - Indian Urban Video Exchange
# IUVX - Indian Urban Video Exchange (Vid-IoT)
Distributed Video-IoT framework to support modern demands for high fidelity, high throughput, automatable video feeds with support for *IoT data annotated video streams*

<p align="center">
Expand All @@ -19,3 +19,22 @@ Distributed Video-IoT framework to support modern demands for high fidelity, hig
` tmux a -t O`
6. A test suite is provided and can be run from inside the LB container. This will test a simple end to end flow. \
` python tests/testSuite.py VidTest.test_simpleFlow`

## APIs
The openAPI specifications can be found [here](./vidiot.json).

## Network Specific Configurations
If you are running docker on a VM (such as kvm based), you may need to manually add an iptables forwarding rule
` sudo iptables -t nat -A PREROUTING -i <iface> -p tcp --dport 1935 -j DNAT --to <vm-ip>:1935`
` sudo iptables -t nat -A PREROUTING -i <iface> -p tcp --dport 8080 -j DNAT --to <vm-ip>:8080`
And the VM will need to add a firewall rule
`sudo ufw allow 1935/tcp`
`sudo ufw allow 8080/tcp`

## Visualizing Stream status
You can visualize the streaams through grafana.
Install using docker again
`docker volume create grafana-storage`
`docker run -d -p 3000:3000 -v grafana-storage:/var/lib/grafana grafana/grafana`
Add an influxdb datasource with db "statter" and db url and credentials from `./scripts/docker_env.env`
Import the json settings from [here](./scripts/grafana_dashboard.json).
238 changes: 238 additions & 0 deletions scripts/grafana_dashboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 1,
"links": [],
"panels": [
{
"columns": [],
"datasource": null,
"fontSize": "100%",
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 0
},
"id": 4,
"options": {},
"pageSize": null,
"showHeader": true,
"sort": {
"col": 0,
"desc": true
},
"styles": [
{
"alias": "Time",
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "Time",
"type": "date"
},
{
"alias": "",
"align": "right",
"colorMode": null,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"decimals": 2,
"pattern": "/.*/",
"thresholds": [],
"type": "number",
"unit": "short"
}
],
"targets": [
{
"groupBy": [
{
"params": [
"streamId"
],
"type": "tag"
}
],
"measurement": "status",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "table",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": []
}
],
"timeFrom": null,
"timeShift": null,
"title": "Panel Title",
"transform": "table",
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "elcita",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 12,
"w": 24,
"x": 0,
"y": 7
},
"hiddenSeries": false,
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"groupBy": [
{
"params": [
"streamId"
],
"type": "tag"
}
],
"measurement": "Bandwidth",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
}
]
],
"tags": []
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Bandwidth",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"schemaVersion": 22,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
]
},
"timezone": "",
"title": "streams",
"uid": "5qMQHoUWz",
"version": 3
}
Loading

0 comments on commit 04e7601

Please sign in to comment.