Git Product home page Git Product logo

apache / streampipes Goto Github PK

View Code? Open in Web Editor NEW
547.0 28.0 168.0 315.01 MB

Apache StreamPipes - A self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams.

Home Page: https://streampipes.apache.org

License: Apache License 2.0

Java 57.88% Shell 0.61% HTML 9.08% Dockerfile 0.17% JavaScript 0.14% TypeScript 22.26% CSS 0.01% Python 2.39% SCSS 3.16% Makefile 0.02% Jupyter Notebook 3.87% Go 0.41%
iot analytics edge stream-processing iiot self-service hacktoberfest

streampipes's Introduction

Github Actions Docker pulls Maven central License Last commit Apache StreamPipes Contributors GitHub commit activity GitHub issues by-label
LinkedIn Twitter


StreamPipes Logo

Self-Service Data Analytics for the (Industrial) IoT

StreamPipes is a self-service (Industrial) IoT toolbox to enable non-technical users to connect , analyze and explore IoT data streams.

StreamPipes Overview


Table of contents


About Apache StreamPipes

Apache StreamPipes makes industrial data analytics easy!

StreamPipes is an end-to-end toolbox for the industrial IoT. It comes with a rich graphical user interface targeted at non-technical users and provides the following features:

  • Quickly connect >20 industrial protocols such as OPC-UA, PLCs, MQTT, REST, Pulsar, Kafka and others.
  • Create data harmonization and analytics pipelines using > 100 algorithms and data sinks to forward data to third-party systems.
  • Use the data explorer to visually explore historical data with many widgets tailored for time-series data.
  • A live dashboard to display real-time data from data sources and pipelines, e.g., for shopfloor monitoring.

StreamPipes is highly extensible and includes a Java SDK to create new pipeline elements and adapters. Python support is available in an early development stage - stay tuned!
Pipeline elements are standalone microservices that can run anywhere - centrally on your server or close at the edge. You want to employ your own machine learning model on live data? Just write your own data processor and make it reusable as a pipeline element.

Besides that, StreamPipes includes features for production deployments:

  • Assign resources such as pipelines, data streams and dashboards to assets for better organization
  • Monitoring & metrics of pipelines and adapters
  • Built-in user and access rights management
  • Export and import resources

User interface

  • Connect data from an OPC-UA server following a three-step configuration process:

StreamPipes Connect

  • Create a pipeline to detect a continuous decrease using a trend detection data processor and a Notificationsink:

StreamPipes Pipeline Editor

  • Visually analyze data using the data explorer:

StreamPipes Data Explorer

Installation

The quickest way to run StreamPipes including the latest extensions (adapters, pipeline elements) is by using our Docker-based installation & operation options, namely:

Important

StreamPipes CLI & k8s are highly recommended for developers or operators. Standard users should stick to StreamPipes Compose.

Please follow the instructions provided in the corresponding README.md to get started.

For a more in-depth manual, read the installation guide.

Note

TL;DR: Download the latest release, switch to the installer/compose directory and run docker-compose up -d.

Documentation

The full documentation is available here.

Quick Links:

Building StreamPipes

To properly build the StreamPipes core, the following tools should be installed:

Prerequisites

  • Java 17 JDK (We officially only support Java 17, JDKs above 17 might work as well, but we don't provide any guarantee)
  • Maven (tested with 3.8)
  • NodeJS + NPM (tested with v12+/ v6+)
  • Docker + Docker-Compose

Building

To build the core project, do the following:

    mvn clean package

To build the ui, switch to the ui folder and perform the following steps:

    npm install
    npm run build

Starting

To start StreamPipes, run docker-compose up --build -d from the root directory.

You can also use the installer or CLI as described in the Installation section.

Pipeline Elements

StreamPipes includes a repository of extensions for adapters and pipeline elements:

  • Connect adapters for a variety of IoT data sources as well as
  • Data Processors and Data Sinks as ready-to-use pipeline elements.

The source code of all included pipeline elements and adapters can be found here.

Extending StreamPipes

You can easily add your own data streams, processors or sinks. A Java-based SDK can be used to integrate your existing processing logic into StreamPipes. Pipeline elements are packaged as Docker images and can be installed at runtime, whenever your requirements change.

馃憠 Check our developer guide.

Bugs and Feature Requests

If you've found a bug or have a feature that you'd love to see in StreamPipes, feel free to create an issue on GitHub:

馃憠 Bugs 馃憠 Feature requests

Get help

If you have any problems during the installation or questions around StreamPipes, you'll get help through one of our community channels:

馃憠 Mailing Lists

Or directly subscribe to [email protected]!

馃憠 And don't forget to follow us on Twitter!

Contribute

We welcome all kinds of contributions to StreamPipes. If you are interested in contributing, let us know! You'll get to know an open-minded and motivated team working together to build the next IIoT analytics toolbox.

Here are some first steps in case you want to contribute:

  • Subscribe to our dev mailing list [email protected]
  • Send an email, tell us about your interests and which parts of StreamPipes you'd like to contribute (e.g., core or UI)!
  • Ask for a mentor who helps you to understand the code base and guides you through the first setup steps
  • Find an issue on GitHub which is tagged with a good first issue label
  • Have a look at our developer wiki to learn more about StreamPipes development.

Have fun!

Feedback

We'd love to hear your feedback! Subscribe to [email protected]

License

Apache License 2.0

streampipes's People

Contributors

aamirxshaikh avatar bossenti avatar cryosolace avatar dependabot[bot] avatar dglttr avatar dominikriemer avatar flomickl avatar github-actions[bot] avatar grainier avatar heymarco avatar hrushi20 avatar hutcheb avatar isaakkrut avatar jochenlutz avatar liuxiaocs7 avatar luoluoyuyu avatar marcelfrueh avatar mohanvive avatar muyangye avatar obermeier avatar patrickraoulphilipp avatar pjfanning avatar robertindie avatar smlabt avatar steveyurongsu avatar sveno3 avatar tejoha avatar tenthe avatar vesense avatar wipatrick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

streampipes's Issues

User Feedback

Feedback button (top right) only opens a blank window (please see attachment)

Imported from Jira STREAMPIPES-83. Original Jira may contain additional context.
Reported by: tex.

UI is not open source

I can not find UI code source? UI is not open source?Where is UI code source?thank you

Pipeline Log Button

The Pipeline Log button has no functionality

Imported from Jira STREAMPIPES-92. Original Jira may contain additional context.
Reported by: tex.

Data Sink for MQTT

Add a datasink for MQTT to module streampipes-sinks-broker-jvm.

Imported from Jira STREAMPIPES-71. Original Jira may contain additional context.
Reported by: zehnder.

Pipeline cannot be saved

Reproduce:

  • Create Pileline
  • Add additional Element
  • Delete Element again

-> Pipeline cannot be saved

Imported from Jira STREAMPIPES-86. Original Jira may contain additional context.
Reported by: tex.

Error when installing W10

Dear team,

When I try to install ".bat" in W10 I receive the following error:

C:\Users\TA-INDUS-C41581\Desktop\streampipes-installer-master\streampipes\windows10>streampipes.bat start
& : No se puede cargar el archivo
C:\Users\TA-INDUS-C41581\Desktop\streampipes-installer-master\streampipes\windows10\streampipes.ps1. El archivo
C:\Users\TA-INDUS-C41581\Desktop\streampipes-installer-master\streampipes\windows10\streampipes.ps1 no est谩 firmado
digitalmente. No se puede ejecutar este script en el sistema actual. Para obtener m谩s informaci贸n acerca de la
ejecuci贸n de scripts y la configuraci贸n de la directiva de ejecuci贸n, consulta about_Execution_Policies en
https:/go.microsoft.com/fwlink/?LinkID=135170.
En l铆nea: 1 Car谩cter: 3

  • & 'C:\Users\TA-INDUS-C41581\Desktop\streampipes-installer-master\stre ...
  • + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
    
    

I have tried to modify this policy but I receive this error:
Set-ExecutionPolicy : Windows PowerShell actualiz贸 la directiva de ejecuci贸n correctamente, pero el valor queda
invalidado por una directiva definida en un 谩mbito m谩s espec铆fico. Debido a esta invalidaci贸n, el shell mantendr谩 la
directiva de ejecuci贸n efectiva actual: RemoteSigned. Escriba "Get-ExecutionPolicy -List" para ver la configuraci贸n de
la directiva de ejecuci贸n. Para obtener m谩s informaci贸n, vea "Get-Help Set-ExecutionPolicy".
En l铆nea: 1 Car谩cter: 1

  • Set-ExecutionPolicy "Unrestricted" -Scope CurrentUser -Confirm:$false
  •   + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
      + FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
    
    

Could you help me?

REgards

Deploy snapshots to Docker Hub

Snapshots of the backend and pipeline element containers should be published to Docker Hub to ease development of StreamPipes

Imported from Jira STREAMPIPES-10. Original Jira may contain additional context.
Reported by: riemer.

Can't connect Pipeline elements

Reproduce:

  • Create Pileline
  • Leave Editor (e.g. go to Data explorer)
  • Go back to Editor聽

-> sometimes elements cannot conntected anymore (see attachment)

Imported from Jira STREAMPIPES-85. Original Jira may contain additional context.
Reported by: tex.

Dashboard widget Edit

When pressing the Edit button of a Dashboard Widget only a blank window opens

Imported from Jira STREAMPIPES-97. Original Jira may contain additional context.
Reported by: tex.

Considering integrating StreamPipes and DSS?

Apache StreamPipes is a very great project in the field of tream processing frameworks, and I think it is a good way to enhance the influence of our two projects is by integrating StreamPipes with DataSphere Studio.
DataSphere Studio is a one-stop data application development and management portal open source by WeBank, which meets the needs of the entire process of data application development from data exchange, desensitization and cleaning, analysis and mining, quality inspection, visual display, regular scheduling to data output.
Github address: https://github.com/WeBankFinTech/DataSphereStudio

Data Sink for MQTT

Add a datasink for MQTT to module streampipes-sinks-broker-jvm.

Imported from Jira STREAMPIPES-71. Original Jira may contain additional context.
Reported by: zehnder.

Use internal file service in file adapters

As described in the thread:聽Re: STREAMPIPES-75: Extend data lake sink to store images on the mailing list. The uploaded files of the file stream and file set adapter should not be stored in the local container, instead they should be stored in the centralized file service..

Imported from Jira STREAMPIPES-80. Original Jira may contain additional context.
Reported by: zehnder.

Remove dependency to kafka-rest

Kafka-rest is licensed under the Confluent Community license. Although not being used in the code directly, Kafka-rest ist currently required to get live data in the data stream preview. We need to find another way to show real-time previews.

Imported from Jira STREAMPIPES-9. Original Jira may contain additional context.
Reported by: riemer.

Sink: HDFS

Description

Create a sink to store events into HDFS.

Input Requirements

  • None

Configurations

  • Host / Port
  • Folder Route
  • User / Password (optional)
  • Parameter for Buckets聽

Imported from Jira STREAMPIPES-49. Original Jira may contain additional context.
Reported by: zehnder.

Notification Sink Placeholder

The notification sink placeholder are not working. #propertyName# are not replaced by the value of the property.

Imported from Jira STREAMPIPES-93. Original Jira may contain additional context.
Reported by: tex.

Dashboard Widget without Parameters

It should not be possible to create a new Dashboard widget unless all required paraments/configurations are set. If a widget is created without all the required paraments, the dashboard will 'crash'.

Imported from Jira STREAMPIPES-98. Original Jira may contain additional context.
Reported by: tex.

Quick Edit Parameter Update

Element parameters are not saved when edit with quick edit, also聽__聽with pressing the save button

Imported from Jira STREAMPIPES-91. Original Jira may contain additional context.
Reported by: tex.

Test Issue

This issue serves to identify the current issue ID ;-)

Exception in adpaters when the date format is incorect

When a user marks a property as a timestamp, there is the possibility to provide a regex to convert the timestamp represented as a String into the internal representation of a UNIX timestamp in milliseconds. As long as the date in the events is formatted according to the regex this works properly. When there is an error in the data an exception is thrown and the adapter stops producing data. In this case the adapter should ignore the event instead and continue with the next event.

Imported from Jira STREAMPIPES-57. Original Jira may contain additional context.
Reported by: zehnder.

Dashboard without name

It should not be possible to create a dashboard without a name

Imported from Jira STREAMPIPES-94. Original Jira may contain additional context.
Reported by: tex.

Extract utils class for mqtt related configurations

We have multiple adapters that connect to a MQTT broker. Therefore, they need the same configuration parameters.

To avoid having to implement these for every adapter we need a Utils class which encapsulates the configuration.聽

Imported from Jira STREAMPIPES-69. Original Jira may contain additional context.
Reported by: zehnder.

Rename File-Download Files

Currently there is a static file name containing a space character is created. Change this to a more meaningful name (e.g. date_indexname) with no special characters

Imported from Jira STREAMPIPES-47. Original Jira may contain additional context.
Reported by: zehnder.

Dashboard Widget without required Data

should not be possible to create a dashboard widget for a data stream that does not contain the required data.

For example, select a data stream without an image, create an image widget and save the dashboard -> the dashboard "crashes".

Imported from Jira STREAMPIPES-96. Original Jira may contain additional context.
Reported by: tex.

Fix Docker repo URLs in installer CLI

The env file of the CLI module of the installer links to some internal repos and need to be changed to a public Docker registry.

Imported from Jira STREAMPIPES-29. Original Jira may contain additional context.
Reported by: riemer.

Links are out of date

  • Links at "User Preferences" -> "Info" should be updated
  • Link聽"User Preferences" -> "Documentation" is not working

Imported from Jira STREAMPIPES-84. Original Jira may contain additional context.
Reported by: tex.

Add processor to filter for numerical and text values

Currently, there are Numerical Filter and Text Filter. If a user wants to apply both, i.e. filter a field for a given string AND subsequently filter a numeric field based on a given threshold, these two PE's need to be concatenated to achieve this goal. In order to improve this common scenario there should be a new processor "Numerical Text Filter" to allow doing this in one step.

Imported from Jira STREAMPIPES-72. Original Jira may contain additional context.
Reported by: wiener.

Check licenses in UI module

Do a complete license check of all packages used in the StreamPipes UI module

Imported from Jira STREAMPIPES-5. Original Jira may contain additional context.
Reported by: riemer.

Processor: Merge two data streams by timestamp

A user can use this processor to merge two data streams by their timestamp.

The processor should be implemented in Java to also run on edge devices.

Imported from Jira STREAMPIPES-59. Original Jira may contain additional context.
Reported by: zehnder.

Frontend copy past mistake

Perhaps this copy past error can be corrected:
The first Reference Point Latitude should be Reference Point Longitude.
latitude-to-longitude

Move CI to Apache infrastructure

Move the currently used Gitlab CI setup to Jenkins or Github Actions to make CI work in the Apache infrastructure

Imported from Jira STREAMPIPES-18. Original Jira may contain additional context.
Reported by: riemer.

Dashboard without name

It should not be possible to create a dashboard without a name

Imported from Jira STREAMPIPES-94. Original Jira may contain additional context.
Reported by: tex.

Could not stop all pipeline elements

Hi, I have the problem that I can't stop a pipeline. Most likely I just used the Pipeline Editor wrong.
This is my pipeline:
pipeline
This is the error when I try to stop the pipeline:
error

Comparison to StreamSets

Hey, so I stumbled across this project and looked interesting, so digging around I see it's just a graphical editor on top of a bunch of Java SDKs, so I am really curious what the differences might be and why someone may chose your product over another?

Pipeline Update blank info box

When you save an updated pipeline, an empty info box is displayed in the top right corner (see attachment).

Imported from Jira STREAMPIPES-89. Original Jira may contain additional context.
Reported by: tex.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.