Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Telemetry-Visualizer

This repository contains a Grafana Dashboard for visualizing telemetry data using MQTT.

Discord Alerts

Join our Discord to receive automated alerts based on Grafana telemetry thresholds: https://discord.gg/pFnUYfB9kc

Grafana is configured to generate alerts when selected telemetry values exceed (or fall below) defined threshold limits. These thresholds can be set per metric directly within Grafana’s alerting rules. When a threshold condition is met—such as high motor temperature, low state of charge, or abnormal voltage—Grafana can trigger a notification that is forwarded to this Discord server.

This allows real-time monitoring of vehicle performance, with Discord serving as a centralized place for team members to receive and respond to alerts.

Prerequisites

  • Docker installed on your machine.
  • An MQTT broker running (e.g., Eclipse Mosquitto). Detailed setup instructions for the MQTT broker can be found in the Helios-Telemetry, running only the aedes server.
  • An MQTT client to publish telemetry data to the broker. Additional setup instructions for the MQTT client can be found in the Helios-Mqtt-Webserver-Test.

Instructions

  1. Clone the Repository:

    git clone [repository-url]
  2. Navigate to the Directory:

    cd Telemetry-Visualizer
  3. Start the Docker Container:

    cd grafana
    docker-compose up -d
  4. Start the MQTT Publisher:

    The MQTT publisher is responsible for sending telemetry data to the MQTT broker. The setup for the MQTT publisher can vary based on your telemetry data source. If you are using the UCSolarCarTeam's telemetry system, the setup for the Telemetry MQTT publisher can be found in the Helios-Mqtt-Webserver-Test github repository. Ensure you have your environment variables set up correctly to connect to the MQTT broker.

  5. Start the MQTT Broker: Start the MQTT broker. You can find an aedes server that sends telemetry data in the Helios-Telemetry repository. If you are using the aedes server, ensure it is configured to run on port 1883 and is accessible at host.docker.internal:1883. Send packets to the topic packet for telemetry data. If you are using a different MQTT broker, ensure it is accessible at host.docker.internal:1883. Ensure that the MQTT broker is running, that you have the environment variables are set up correctly, and that you have the correct credentials to connect to it.

  6. Start the MQTT Client: If you have an MQTT client set up, start it to publish telemetry data to the broker. Ensure it is configured to connect to host.docker.internal:1883 with the appropriate credentials.

  7. Access Grafana: Open your web browser and go to http://localhost:3000. The default login credentials are:

    • Username: admin
    • Password: admin
  8. Add Data Source:

    • Navigate to Configuration > Data Sources.
    • Click on Add data source.
    • Select MQTT.
  9. Configure MQTT Data Source:

    • Name: MQTT
    • Server URL: host.docker.internal:1883
    • Username: [your-username]
    • Password: [your-password]
  10. Save & Test:

    • Click on Save & Test to ensure the connection is successful.
  11. Connect Query:

    • Navigate to Explore.
    • Select the MQTT data source you just created.
    • Enter the topic you want to subscribe to (e.g., packet).
    • Click on Run Query to see the telemetry data.
  12. View Dashboard:

    • Navigate to Dashboards to view the telemetry dashboards. Dashboards are automatically synced from grafana/dashboards/ in this repository via Grafana Git Sync.
    • To update a dashboard, see grafana/DASHBOARD_WORKFLOW.md.

Helpful Commands

Use the following commands to interact with the MQTT broker and visualize data:

docker run -it --rm eclipse-mosquitto mosquitto_sub -h 10.0.0.63 -p 1883 -u [ username ] -P [password] -t packet

Pushing updates to AWS Elastic Container Registry (ECR)

To push updates to AWS ECR, follow these steps:

  1. Authenticate Docker to AWS ECR Use the AWS CLI to authenticate Docker to your ECR registry. Replace [aws-region] with your AWS region.

    aws ecr get-login-password --region [aws-region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[aws-region].amazonaws.com
  2. Build the Docker Image Navigate to the directory containing your Dockerfile and build the image. Replace [image-name] with your desired image name.

    cd grafana
    docker build -t [image-name] .
  3. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  4. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  5. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  6. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest

Learn more here

https://ca-central-1.console.aws.amazon.com/ecr/repositories/private/602361116849/telemetry-visualizer?region=ca-central-1

About

Grafana Dashboard to view vehicle data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Telemetry-Visualizer

This repository contains a Grafana Dashboard for visualizing telemetry data using MQTT.

Discord Alerts

Join our Discord to receive automated alerts based on Grafana telemetry thresholds: https://discord.gg/pFnUYfB9kc

Grafana is configured to generate alerts when selected telemetry values exceed (or fall below) defined threshold limits. These thresholds can be set per metric directly within Grafana’s alerting rules. When a threshold condition is met—such as high motor temperature, low state of charge, or abnormal voltage—Grafana can trigger a notification that is forwarded to this Discord server.

This allows real-time monitoring of vehicle performance, with Discord serving as a centralized place for team members to receive and respond to alerts.

Prerequisites

  • Docker installed on your machine.
  • An MQTT broker running (e.g., Eclipse Mosquitto). Detailed setup instructions for the MQTT broker can be found in the Helios-Telemetry, running only the aedes server.
  • An MQTT client to publish telemetry data to the broker. Additional setup instructions for the MQTT client can be found in the Helios-Mqtt-Webserver-Test.

Instructions

  1. Clone the Repository:

    git clone [repository-url]
  2. Navigate to the Directory:

    cd Telemetry-Visualizer
  3. Start the Docker Container:

    cd grafana
    docker-compose up -d
  4. Start the MQTT Publisher:

    The MQTT publisher is responsible for sending telemetry data to the MQTT broker. The setup for the MQTT publisher can vary based on your telemetry data source. If you are using the UCSolarCarTeam's telemetry system, the setup for the Telemetry MQTT publisher can be found in the Helios-Mqtt-Webserver-Test github repository. Ensure you have your environment variables set up correctly to connect to the MQTT broker.

  5. Start the MQTT Broker: Start the MQTT broker. You can find an aedes server that sends telemetry data in the Helios-Telemetry repository. If you are using the aedes server, ensure it is configured to run on port 1883 and is accessible at host.docker.internal:1883. Send packets to the topic packet for telemetry data. If you are using a different MQTT broker, ensure it is accessible at host.docker.internal:1883. Ensure that the MQTT broker is running, that you have the environment variables are set up correctly, and that you have the correct credentials to connect to it.

  6. Start the MQTT Client: If you have an MQTT client set up, start it to publish telemetry data to the broker. Ensure it is configured to connect to host.docker.internal:1883 with the appropriate credentials.

  7. Access Grafana: Open your web browser and go to http://localhost:3000. The default login credentials are:

    • Username: admin
    • Password: admin
  8. Add Data Source:

    • Navigate to Configuration > Data Sources.
    • Click on Add data source.
    • Select MQTT.
  9. Configure MQTT Data Source:

    • Name: MQTT
    • Server URL: host.docker.internal:1883
    • Username: [your-username]
    • Password: [your-password]
  10. Save & Test:

    • Click on Save & Test to ensure the connection is successful.
  11. Connect Query:

    • Navigate to Explore.
    • Select the MQTT data source you just created.
    • Enter the topic you want to subscribe to (e.g., packet).
    • Click on Run Query to see the telemetry data.
  12. View Dashboard:

    • Navigate to Dashboards to view the telemetry dashboards. Dashboards are automatically synced from grafana/dashboards/ in this repository via Grafana Git Sync.
    • To update a dashboard, see grafana/DASHBOARD_WORKFLOW.md.

Helpful Commands

Use the following commands to interact with the MQTT broker and visualize data:

docker run -it --rm eclipse-mosquitto mosquitto_sub -h 10.0.0.63 -p 1883 -u [ username ] -P [password] -t packet

Pushing updates to AWS Elastic Container Registry (ECR)

To push updates to AWS ECR, follow these steps:

  1. Authenticate Docker to AWS ECR Use the AWS CLI to authenticate Docker to your ECR registry. Replace [aws-region] with your AWS region.

    aws ecr get-login-password --region [aws-region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[aws-region].amazonaws.com
  2. Build the Docker Image Navigate to the directory containing your Dockerfile and build the image. Replace [image-name] with your desired image name.

    cd grafana
    docker build -t [image-name] .
  3. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  4. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  5. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  6. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest

Learn more here

https://ca-central-1.console.aws.amazon.com/ecr/repositories/private/602361116849/telemetry-visualizer?region=ca-central-1

About

Grafana Dashboard to view vehicle data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Telemetry-Visualizer

This repository contains a Grafana Dashboard for visualizing telemetry data using MQTT.

Discord Alerts

Join our Discord to receive automated alerts based on Grafana telemetry thresholds: https://discord.gg/pFnUYfB9kc

Grafana is configured to generate alerts when selected telemetry values exceed (or fall below) defined threshold limits. These thresholds can be set per metric directly within Grafana’s alerting rules. When a threshold condition is met—such as high motor temperature, low state of charge, or abnormal voltage—Grafana can trigger a notification that is forwarded to this Discord server.

This allows real-time monitoring of vehicle performance, with Discord serving as a centralized place for team members to receive and respond to alerts.

Prerequisites

  • Docker installed on your machine.
  • An MQTT broker running (e.g., Eclipse Mosquitto). Detailed setup instructions for the MQTT broker can be found in the Helios-Telemetry, running only the aedes server.
  • An MQTT client to publish telemetry data to the broker. Additional setup instructions for the MQTT client can be found in the Helios-Mqtt-Webserver-Test.

Instructions

  1. Clone the Repository:

    git clone [repository-url]
  2. Navigate to the Directory:

    cd Telemetry-Visualizer
  3. Start the Docker Container:

    cd grafana
    docker-compose up -d
  4. Start the MQTT Publisher:

    The MQTT publisher is responsible for sending telemetry data to the MQTT broker. The setup for the MQTT publisher can vary based on your telemetry data source. If you are using the UCSolarCarTeam's telemetry system, the setup for the Telemetry MQTT publisher can be found in the Helios-Mqtt-Webserver-Test github repository. Ensure you have your environment variables set up correctly to connect to the MQTT broker.

  5. Start the MQTT Broker: Start the MQTT broker. You can find an aedes server that sends telemetry data in the Helios-Telemetry repository. If you are using the aedes server, ensure it is configured to run on port 1883 and is accessible at host.docker.internal:1883. Send packets to the topic packet for telemetry data. If you are using a different MQTT broker, ensure it is accessible at host.docker.internal:1883. Ensure that the MQTT broker is running, that you have the environment variables are set up correctly, and that you have the correct credentials to connect to it.

  6. Start the MQTT Client: If you have an MQTT client set up, start it to publish telemetry data to the broker. Ensure it is configured to connect to host.docker.internal:1883 with the appropriate credentials.

  7. Access Grafana: Open your web browser and go to http://localhost:3000. The default login credentials are:

    • Username: admin
    • Password: admin
  8. Add Data Source:

    • Navigate to Configuration > Data Sources.
    • Click on Add data source.
    • Select MQTT.
  9. Configure MQTT Data Source:

    • Name: MQTT
    • Server URL: host.docker.internal:1883
    • Username: [your-username]
    • Password: [your-password]
  10. Save & Test:

    • Click on Save & Test to ensure the connection is successful.
  11. Connect Query:

    • Navigate to Explore.
    • Select the MQTT data source you just created.
    • Enter the topic you want to subscribe to (e.g., packet).
    • Click on Run Query to see the telemetry data.
  12. View Dashboard:

    • Navigate to Dashboards to view the telemetry dashboards. Dashboards are automatically synced from grafana/dashboards/ in this repository via Grafana Git Sync.
    • To update a dashboard, see grafana/DASHBOARD_WORKFLOW.md.

Helpful Commands

Use the following commands to interact with the MQTT broker and visualize data:

docker run -it --rm eclipse-mosquitto mosquitto_sub -h 10.0.0.63 -p 1883 -u [ username ] -P [password] -t packet

Pushing updates to AWS Elastic Container Registry (ECR)

To push updates to AWS ECR, follow these steps:

  1. Authenticate Docker to AWS ECR Use the AWS CLI to authenticate Docker to your ECR registry. Replace [aws-region] with your AWS region.

    aws ecr get-login-password --region [aws-region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[aws-region].amazonaws.com
  2. Build the Docker Image Navigate to the directory containing your Dockerfile and build the image. Replace [image-name] with your desired image name.

    cd grafana
    docker build -t [image-name] .
  3. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  4. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  5. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  6. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest

Learn more here

https://ca-central-1.console.aws.amazon.com/ecr/repositories/private/602361116849/telemetry-visualizer?region=ca-central-1

About

Grafana Dashboard to view vehicle data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Telemetry-Visualizer

This repository contains a Grafana Dashboard for visualizing telemetry data using MQTT.

Discord Alerts

Join our Discord to receive automated alerts based on Grafana telemetry thresholds: https://discord.gg/pFnUYfB9kc

Grafana is configured to generate alerts when selected telemetry values exceed (or fall below) defined threshold limits. These thresholds can be set per metric directly within Grafana’s alerting rules. When a threshold condition is met—such as high motor temperature, low state of charge, or abnormal voltage—Grafana can trigger a notification that is forwarded to this Discord server.

This allows real-time monitoring of vehicle performance, with Discord serving as a centralized place for team members to receive and respond to alerts.

Prerequisites

  • Docker installed on your machine.
  • An MQTT broker running (e.g., Eclipse Mosquitto). Detailed setup instructions for the MQTT broker can be found in the Helios-Telemetry, running only the aedes server.
  • An MQTT client to publish telemetry data to the broker. Additional setup instructions for the MQTT client can be found in the Helios-Mqtt-Webserver-Test.

Instructions

  1. Clone the Repository:

    git clone [repository-url]
  2. Navigate to the Directory:

    cd Telemetry-Visualizer
  3. Start the Docker Container:

    cd grafana
    docker-compose up -d
  4. Start the MQTT Publisher:

    The MQTT publisher is responsible for sending telemetry data to the MQTT broker. The setup for the MQTT publisher can vary based on your telemetry data source. If you are using the UCSolarCarTeam's telemetry system, the setup for the Telemetry MQTT publisher can be found in the Helios-Mqtt-Webserver-Test github repository. Ensure you have your environment variables set up correctly to connect to the MQTT broker.

  5. Start the MQTT Broker: Start the MQTT broker. You can find an aedes server that sends telemetry data in the Helios-Telemetry repository. If you are using the aedes server, ensure it is configured to run on port 1883 and is accessible at host.docker.internal:1883. Send packets to the topic packet for telemetry data. If you are using a different MQTT broker, ensure it is accessible at host.docker.internal:1883. Ensure that the MQTT broker is running, that you have the environment variables are set up correctly, and that you have the correct credentials to connect to it.

  6. Start the MQTT Client: If you have an MQTT client set up, start it to publish telemetry data to the broker. Ensure it is configured to connect to host.docker.internal:1883 with the appropriate credentials.

  7. Access Grafana: Open your web browser and go to http://localhost:3000. The default login credentials are:

    • Username: admin
    • Password: admin
  8. Add Data Source:

    • Navigate to Configuration > Data Sources.
    • Click on Add data source.
    • Select MQTT.
  9. Configure MQTT Data Source:

    • Name: MQTT
    • Server URL: host.docker.internal:1883
    • Username: [your-username]
    • Password: [your-password]
  10. Save & Test:

    • Click on Save & Test to ensure the connection is successful.
  11. Connect Query:

    • Navigate to Explore.
    • Select the MQTT data source you just created.
    • Enter the topic you want to subscribe to (e.g., packet).
    • Click on Run Query to see the telemetry data.
  12. View Dashboard:

    • Navigate to Dashboards to view the telemetry dashboards. Dashboards are automatically synced from grafana/dashboards/ in this repository via Grafana Git Sync.
    • To update a dashboard, see grafana/DASHBOARD_WORKFLOW.md.

Helpful Commands

Use the following commands to interact with the MQTT broker and visualize data:

docker run -it --rm eclipse-mosquitto mosquitto_sub -h 10.0.0.63 -p 1883 -u [ username ] -P [password] -t packet

Pushing updates to AWS Elastic Container Registry (ECR)

To push updates to AWS ECR, follow these steps:

  1. Authenticate Docker to AWS ECR Use the AWS CLI to authenticate Docker to your ECR registry. Replace [aws-region] with your AWS region.

    aws ecr get-login-password --region [aws-region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[aws-region].amazonaws.com
  2. Build the Docker Image Navigate to the directory containing your Dockerfile and build the image. Replace [image-name] with your desired image name.

    cd grafana
    docker build -t [image-name] .
  3. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  4. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  5. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  6. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest

Learn more here

https://ca-central-1.console.aws.amazon.com/ecr/repositories/private/602361116849/telemetry-visualizer?region=ca-central-1

About

Grafana Dashboard to view vehicle data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Telemetry-Visualizer

This repository contains a Grafana Dashboard for visualizing telemetry data using MQTT.

Discord Alerts

Join our Discord to receive automated alerts based on Grafana telemetry thresholds: https://discord.gg/pFnUYfB9kc

Grafana is configured to generate alerts when selected telemetry values exceed (or fall below) defined threshold limits. These thresholds can be set per metric directly within Grafana’s alerting rules. When a threshold condition is met—such as high motor temperature, low state of charge, or abnormal voltage—Grafana can trigger a notification that is forwarded to this Discord server.

This allows real-time monitoring of vehicle performance, with Discord serving as a centralized place for team members to receive and respond to alerts.

Prerequisites

  • Docker installed on your machine.
  • An MQTT broker running (e.g., Eclipse Mosquitto). Detailed setup instructions for the MQTT broker can be found in the Helios-Telemetry, running only the aedes server.
  • An MQTT client to publish telemetry data to the broker. Additional setup instructions for the MQTT client can be found in the Helios-Mqtt-Webserver-Test.

Instructions

  1. Clone the Repository:

    git clone [repository-url]
  2. Navigate to the Directory:

    cd Telemetry-Visualizer
  3. Start the Docker Container:

    cd grafana
    docker-compose up -d
  4. Start the MQTT Publisher:

    The MQTT publisher is responsible for sending telemetry data to the MQTT broker. The setup for the MQTT publisher can vary based on your telemetry data source. If you are using the UCSolarCarTeam's telemetry system, the setup for the Telemetry MQTT publisher can be found in the Helios-Mqtt-Webserver-Test github repository. Ensure you have your environment variables set up correctly to connect to the MQTT broker.

  5. Start the MQTT Broker: Start the MQTT broker. You can find an aedes server that sends telemetry data in the Helios-Telemetry repository. If you are using the aedes server, ensure it is configured to run on port 1883 and is accessible at host.docker.internal:1883. Send packets to the topic packet for telemetry data. If you are using a different MQTT broker, ensure it is accessible at host.docker.internal:1883. Ensure that the MQTT broker is running, that you have the environment variables are set up correctly, and that you have the correct credentials to connect to it.

  6. Start the MQTT Client: If you have an MQTT client set up, start it to publish telemetry data to the broker. Ensure it is configured to connect to host.docker.internal:1883 with the appropriate credentials.

  7. Access Grafana: Open your web browser and go to http://localhost:3000. The default login credentials are:

    • Username: admin
    • Password: admin
  8. Add Data Source:

    • Navigate to Configuration > Data Sources.
    • Click on Add data source.
    • Select MQTT.
  9. Configure MQTT Data Source:

    • Name: MQTT
    • Server URL: host.docker.internal:1883
    • Username: [your-username]
    • Password: [your-password]
  10. Save & Test:

    • Click on Save & Test to ensure the connection is successful.
  11. Connect Query:

    • Navigate to Explore.
    • Select the MQTT data source you just created.
    • Enter the topic you want to subscribe to (e.g., packet).
    • Click on Run Query to see the telemetry data.
  12. View Dashboard:

    • Navigate to Dashboards to view the telemetry dashboards. Dashboards are automatically synced from grafana/dashboards/ in this repository via Grafana Git Sync.
    • To update a dashboard, see grafana/DASHBOARD_WORKFLOW.md.

Helpful Commands

Use the following commands to interact with the MQTT broker and visualize data:

docker run -it --rm eclipse-mosquitto mosquitto_sub -h 10.0.0.63 -p 1883 -u [ username ] -P [password] -t packet

Pushing updates to AWS Elastic Container Registry (ECR)

To push updates to AWS ECR, follow these steps:

  1. Authenticate Docker to AWS ECR Use the AWS CLI to authenticate Docker to your ECR registry. Replace [aws-region] with your AWS region.

    aws ecr get-login-password --region [aws-region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[aws-region].amazonaws.com
  2. Build the Docker Image Navigate to the directory containing your Dockerfile and build the image. Replace [image-name] with your desired image name.

    cd grafana
    docker build -t [image-name] .
  3. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  4. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  5. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  6. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest

Learn more here

https://ca-central-1.console.aws.amazon.com/ecr/repositories/private/602361116849/telemetry-visualizer?region=ca-central-1

About

Grafana Dashboard to view vehicle data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Telemetry-Visualizer

This repository contains a Grafana Dashboard for visualizing telemetry data using MQTT.

Discord Alerts

Join our Discord to receive automated alerts based on Grafana telemetry thresholds: https://discord.gg/pFnUYfB9kc

Grafana is configured to generate alerts when selected telemetry values exceed (or fall below) defined threshold limits. These thresholds can be set per metric directly within Grafana’s alerting rules. When a threshold condition is met—such as high motor temperature, low state of charge, or abnormal voltage—Grafana can trigger a notification that is forwarded to this Discord server.

This allows real-time monitoring of vehicle performance, with Discord serving as a centralized place for team members to receive and respond to alerts.

Prerequisites

  • Docker installed on your machine.
  • An MQTT broker running (e.g., Eclipse Mosquitto). Detailed setup instructions for the MQTT broker can be found in the Helios-Telemetry, running only the aedes server.
  • An MQTT client to publish telemetry data to the broker. Additional setup instructions for the MQTT client can be found in the Helios-Mqtt-Webserver-Test.

Instructions

  1. Clone the Repository:

    git clone [repository-url]
  2. Navigate to the Directory:

    cd Telemetry-Visualizer
  3. Start the Docker Container:

    cd grafana
    docker-compose up -d
  4. Start the MQTT Publisher:

    The MQTT publisher is responsible for sending telemetry data to the MQTT broker. The setup for the MQTT publisher can vary based on your telemetry data source. If you are using the UCSolarCarTeam's telemetry system, the setup for the Telemetry MQTT publisher can be found in the Helios-Mqtt-Webserver-Test github repository. Ensure you have your environment variables set up correctly to connect to the MQTT broker.

  5. Start the MQTT Broker: Start the MQTT broker. You can find an aedes server that sends telemetry data in the Helios-Telemetry repository. If you are using the aedes server, ensure it is configured to run on port 1883 and is accessible at host.docker.internal:1883. Send packets to the topic packet for telemetry data. If you are using a different MQTT broker, ensure it is accessible at host.docker.internal:1883. Ensure that the MQTT broker is running, that you have the environment variables are set up correctly, and that you have the correct credentials to connect to it.

  6. Start the MQTT Client: If you have an MQTT client set up, start it to publish telemetry data to the broker. Ensure it is configured to connect to host.docker.internal:1883 with the appropriate credentials.

  7. Access Grafana: Open your web browser and go to http://localhost:3000. The default login credentials are:

    • Username: admin
    • Password: admin
  8. Add Data Source:

    • Navigate to Configuration > Data Sources.
    • Click on Add data source.
    • Select MQTT.
  9. Configure MQTT Data Source:

    • Name: MQTT
    • Server URL: host.docker.internal:1883
    • Username: [your-username]
    • Password: [your-password]
  10. Save & Test:

    • Click on Save & Test to ensure the connection is successful.
  11. Connect Query:

    • Navigate to Explore.
    • Select the MQTT data source you just created.
    • Enter the topic you want to subscribe to (e.g., packet).
    • Click on Run Query to see the telemetry data.
  12. View Dashboard:

    • Navigate to Dashboards to view the telemetry dashboards. Dashboards are automatically synced from grafana/dashboards/ in this repository via Grafana Git Sync.
    • To update a dashboard, see grafana/DASHBOARD_WORKFLOW.md.

Helpful Commands

Use the following commands to interact with the MQTT broker and visualize data:

docker run -it --rm eclipse-mosquitto mosquitto_sub -h 10.0.0.63 -p 1883 -u [ username ] -P [password] -t packet

Pushing updates to AWS Elastic Container Registry (ECR)

To push updates to AWS ECR, follow these steps:

  1. Authenticate Docker to AWS ECR Use the AWS CLI to authenticate Docker to your ECR registry. Replace [aws-region] with your AWS region.

    aws ecr get-login-password --region [aws-region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[aws-region].amazonaws.com
  2. Build the Docker Image Navigate to the directory containing your Dockerfile and build the image. Replace [image-name] with your desired image name.

    cd grafana
    docker build -t [image-name] .
  3. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  4. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  5. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  6. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest

Learn more here

https://ca-central-1.console.aws.amazon.com/ecr/repositories/private/602361116849/telemetry-visualizer?region=ca-central-1

About

Grafana Dashboard to view vehicle data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Telemetry-Visualizer

This repository contains a Grafana Dashboard for visualizing telemetry data using MQTT.

Discord Alerts

Join our Discord to receive automated alerts based on Grafana telemetry thresholds: https://discord.gg/pFnUYfB9kc

Grafana is configured to generate alerts when selected telemetry values exceed (or fall below) defined threshold limits. These thresholds can be set per metric directly within Grafana’s alerting rules. When a threshold condition is met—such as high motor temperature, low state of charge, or abnormal voltage—Grafana can trigger a notification that is forwarded to this Discord server.

This allows real-time monitoring of vehicle performance, with Discord serving as a centralized place for team members to receive and respond to alerts.

Prerequisites

  • Docker installed on your machine.
  • An MQTT broker running (e.g., Eclipse Mosquitto). Detailed setup instructions for the MQTT broker can be found in the Helios-Telemetry, running only the aedes server.
  • An MQTT client to publish telemetry data to the broker. Additional setup instructions for the MQTT client can be found in the Helios-Mqtt-Webserver-Test.

Instructions

  1. Clone the Repository:

    git clone [repository-url]
  2. Navigate to the Directory:

    cd Telemetry-Visualizer
  3. Start the Docker Container:

    cd grafana
    docker-compose up -d
  4. Start the MQTT Publisher:

    The MQTT publisher is responsible for sending telemetry data to the MQTT broker. The setup for the MQTT publisher can vary based on your telemetry data source. If you are using the UCSolarCarTeam's telemetry system, the setup for the Telemetry MQTT publisher can be found in the Helios-Mqtt-Webserver-Test github repository. Ensure you have your environment variables set up correctly to connect to the MQTT broker.

  5. Start the MQTT Broker: Start the MQTT broker. You can find an aedes server that sends telemetry data in the Helios-Telemetry repository. If you are using the aedes server, ensure it is configured to run on port 1883 and is accessible at host.docker.internal:1883. Send packets to the topic packet for telemetry data. If you are using a different MQTT broker, ensure it is accessible at host.docker.internal:1883. Ensure that the MQTT broker is running, that you have the environment variables are set up correctly, and that you have the correct credentials to connect to it.

  6. Start the MQTT Client: If you have an MQTT client set up, start it to publish telemetry data to the broker. Ensure it is configured to connect to host.docker.internal:1883 with the appropriate credentials.

  7. Access Grafana: Open your web browser and go to http://localhost:3000. The default login credentials are:

    • Username: admin
    • Password: admin
  8. Add Data Source:

    • Navigate to Configuration > Data Sources.
    • Click on Add data source.
    • Select MQTT.
  9. Configure MQTT Data Source:

    • Name: MQTT
    • Server URL: host.docker.internal:1883
    • Username: [your-username]
    • Password: [your-password]
  10. Save & Test:

    • Click on Save & Test to ensure the connection is successful.
  11. Connect Query:

    • Navigate to Explore.
    • Select the MQTT data source you just created.
    • Enter the topic you want to subscribe to (e.g., packet).
    • Click on Run Query to see the telemetry data.
  12. View Dashboard:

    • Navigate to Dashboards to view the telemetry dashboards. Dashboards are automatically synced from grafana/dashboards/ in this repository via Grafana Git Sync.
    • To update a dashboard, see grafana/DASHBOARD_WORKFLOW.md.

Helpful Commands

Use the following commands to interact with the MQTT broker and visualize data:

docker run -it --rm eclipse-mosquitto mosquitto_sub -h 10.0.0.63 -p 1883 -u [ username ] -P [password] -t packet

Pushing updates to AWS Elastic Container Registry (ECR)

To push updates to AWS ECR, follow these steps:

  1. Authenticate Docker to AWS ECR Use the AWS CLI to authenticate Docker to your ECR registry. Replace [aws-region] with your AWS region.

    aws ecr get-login-password --region [aws-region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[aws-region].amazonaws.com
  2. Build the Docker Image Navigate to the directory containing your Dockerfile and build the image. Replace [image-name] with your desired image name.

    cd grafana
    docker build -t [image-name] .
  3. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  4. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  5. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  6. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest

Learn more here

https://ca-central-1.console.aws.amazon.com/ecr/repositories/private/602361116849/telemetry-visualizer?region=ca-central-1

About

Grafana Dashboard to view vehicle data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Telemetry-Visualizer

This repository contains a Grafana Dashboard for visualizing telemetry data using MQTT.

Discord Alerts

Join our Discord to receive automated alerts based on Grafana telemetry thresholds: https://discord.gg/pFnUYfB9kc

Grafana is configured to generate alerts when selected telemetry values exceed (or fall below) defined threshold limits. These thresholds can be set per metric directly within Grafana’s alerting rules. When a threshold condition is met—such as high motor temperature, low state of charge, or abnormal voltage—Grafana can trigger a notification that is forwarded to this Discord server.

This allows real-time monitoring of vehicle performance, with Discord serving as a centralized place for team members to receive and respond to alerts.

Prerequisites

  • Docker installed on your machine.
  • An MQTT broker running (e.g., Eclipse Mosquitto). Detailed setup instructions for the MQTT broker can be found in the Helios-Telemetry, running only the aedes server.
  • An MQTT client to publish telemetry data to the broker. Additional setup instructions for the MQTT client can be found in the Helios-Mqtt-Webserver-Test.

Instructions

  1. Clone the Repository:

    git clone [repository-url]
  2. Navigate to the Directory:

    cd Telemetry-Visualizer
  3. Start the Docker Container:

    cd grafana
    docker-compose up -d
  4. Start the MQTT Publisher:

    The MQTT publisher is responsible for sending telemetry data to the MQTT broker. The setup for the MQTT publisher can vary based on your telemetry data source. If you are using the UCSolarCarTeam's telemetry system, the setup for the Telemetry MQTT publisher can be found in the Helios-Mqtt-Webserver-Test github repository. Ensure you have your environment variables set up correctly to connect to the MQTT broker.

  5. Start the MQTT Broker: Start the MQTT broker. You can find an aedes server that sends telemetry data in the Helios-Telemetry repository. If you are using the aedes server, ensure it is configured to run on port 1883 and is accessible at host.docker.internal:1883. Send packets to the topic packet for telemetry data. If you are using a different MQTT broker, ensure it is accessible at host.docker.internal:1883. Ensure that the MQTT broker is running, that you have the environment variables are set up correctly, and that you have the correct credentials to connect to it.

  6. Start the MQTT Client: If you have an MQTT client set up, start it to publish telemetry data to the broker. Ensure it is configured to connect to host.docker.internal:1883 with the appropriate credentials.

  7. Access Grafana: Open your web browser and go to http://localhost:3000. The default login credentials are:

    • Username: admin
    • Password: admin
  8. Add Data Source:

    • Navigate to Configuration > Data Sources.
    • Click on Add data source.
    • Select MQTT.
  9. Configure MQTT Data Source:

    • Name: MQTT
    • Server URL: host.docker.internal:1883
    • Username: [your-username]
    • Password: [your-password]
  10. Save & Test:

    • Click on Save & Test to ensure the connection is successful.
  11. Connect Query:

    • Navigate to Explore.
    • Select the MQTT data source you just created.
    • Enter the topic you want to subscribe to (e.g., packet).
    • Click on Run Query to see the telemetry data.
  12. View Dashboard:

    • Navigate to Dashboards to view the telemetry dashboards. Dashboards are automatically synced from grafana/dashboards/ in this repository via Grafana Git Sync.
    • To update a dashboard, see grafana/DASHBOARD_WORKFLOW.md.

Helpful Commands

Use the following commands to interact with the MQTT broker and visualize data:

docker run -it --rm eclipse-mosquitto mosquitto_sub -h 10.0.0.63 -p 1883 -u [ username ] -P [password] -t packet

Pushing updates to AWS Elastic Container Registry (ECR)

To push updates to AWS ECR, follow these steps:

  1. Authenticate Docker to AWS ECR Use the AWS CLI to authenticate Docker to your ECR registry. Replace [aws-region] with your AWS region.

    aws ecr get-login-password --region [aws-region] | docker login --username AWS --password-stdin [aws-account-id].dkr.ecr.[aws-region].amazonaws.com
  2. Build the Docker Image Navigate to the directory containing your Dockerfile and build the image. Replace [image-name] with your desired image name.

    cd grafana
    docker build -t [image-name] .
  3. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  4. Tag the Docker Image Tag the image to match your ECR repository. Replace [aws-account-id], [aws-region], and [image-name] with your AWS account ID, region, and image name respectively.

    docker tag [image-name]:latest [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  5. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest
  6. Push the Docker Image to ECR Push the tagged image to your ECR repository.

    docker push [aws-account-id].dkr.ecr.[aws-region].amazonaws.com/[image-name]:latest

Learn more here

https://ca-central-1.console.aws.amazon.com/ecr/repositories/private/602361116849/telemetry-visualizer?region=ca-central-1

About

Grafana Dashboard to view vehicle data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors