edge-anomaly-detection

This repository contains the code for a workshop on how to use different tools to monitor and manage an edge-anomaly-detection application. Covering the following topics:

  • Deployment instructions
  • Developer Deployment Instructions
  • Viewing the Kafka messages under the data lake project
  • Checking the Prometheus charts for the application
  • Configuring Camel K Ship integration

Project Overview and Purpose

The purpose of this project is to provide a hands-on tutorial and example code for implementing anomaly detection on edge devices. Anomaly detection is a critical capability for IoT and edge computing applications, enabling devices to identify unusual behavior or failures in real-time.

This repository includes code and notebooks to train anomaly detection models using machine learning, optimize and package the models for deployment on edge devices, and integrate the models with an IoT application using tools like Apache Kafka and Prometheus for monitoring.

By working through this workshop, developers will gain practical experience with the end-to-end process of building and deploying an edge anomaly detection application, from data collection and model training to edge deployment and monitoring.

Deployment instructions

Developer Deployment Instructions

WorkShop

Notebooks

Contributing

We welcome contributions to improve and expand this workshop! Here are a few ways you can contribute:

  • Report bugs, suggest enhancements, or ask questions by opening an issue on the GitHub repository.
  • Submit pull requests to fix bugs, add new features, or improve the documentation.
  • Share your experiences, insights, or alternative approaches by writing blog posts or tutorials that reference this workshop.

To contribute code changes, please follow these steps:

  1. Fork the repository on GitHub.
  2. Create a new branch for your changes.
  3. Make your changes and commit them with descriptive commit messages.
  4. Push your changes to your forked repository.
  5. Open a pull request to the main repository, describing your changes in detail.

Contributing to the Notebooks Repository

In addition to the main workshop repository, we also have a separate repository for Jupyter notebooks related to edge anomaly detection: edge-anomaly-detection-notebooks.

To contribute to the notebooks repository, follow these steps:

  1. Fork the edge-anomaly-detection-notebooks repository on GitHub.
  2. Create a new branch for your changes.
  3. Add new notebooks or update existing ones with your contributions.
  4. Commit your changes with descriptive commit messages.
  5. Push your changes to your forked repository.
  6. Open a pull request to the main notebooks repository, describing your changes in detail.

We appreciate contributions that add new examples, tutorials, or experiments related to edge anomaly detection using Jupyter notebooks. Please make sure your notebooks are well-documented and follow best practices for reproducibility.

Contributing to the Applications Repository

We also have a separate repository for developing sample applications related to edge anomaly detection using us OPC UA client and server based on python-opcua: opcua-asyncio-build-pipelines.

To contribute to the notebooks repository, follow these steps:

  1. Fork the opcua-asyncio-build-pipelines repository on GitHub.
  2. Create a new branch for your changes.
  3. Add new notebooks or update existing ones with your contributions.
  4. Commit your changes with descriptive commit messages.
  5. Push your changes to your forked repository.
  6. Open a pull request to the main notebooks repository, describing your changes in detail.

Additional Resources