GithubHelp home page GithubHelp logo

Comments (4)

srclosson avatar srclosson commented on May 19, 2024

Hi Mark,

Thanks for the feedback.

Grafana uses GRPC to communicate with plugins, allowing the developer to use the language of choice for writing the backend. Although Grafana has standardized on golang, many of the OPC UA tools, examples, and utilities supplied by the OPC Foundation are in C#. This is not for OPC COM/DCOM compatibility, but for OPC UA compatibility. I'm using dotnet core and compiling for 3 separate OS's for the backend, thus all 3 will be supported (osx, windows, linux). I spent quite a bit of time in the past looking at gopcua, but found that it was not quite mature enough.

With that said, backends can be written in any language and you are welcome to fork and use something else. The open62541 project looks quite good, but I liked having an object oriented language to work with. I had even (at one point) tried to use open62541 wrapped with golang.

In the end, it's my personal opinion that C# is still the best path forward.

from opcua-datasource.

MarkoBursic avatar MarkoBursic commented on May 19, 2024

Dear Stephanie,

For now, I need to somehow make a OPC UA server and update variables in a golang app. As you said, gopcua has poor documentation, the open62541 looks promising, but it would need a kind of wrapper for my golang app - I think it's the way to go. Things I do like from open62541 is that it is made for embedded systems, it does not require large memory and computation power. Since it is build in C, it should be easily ported on various platforms and OS.

Once I will make the OPC server running, I will try your datasource. Everything will run on ARM processor, OS is Linux Debian buster.

I know, that it takes lots of efforts to make a stable application. My personal opinion is that your application would be best if made in golang, as the Grafana is also made in golang (personally I don't like the golang) just to make it more portable and preferably someday merged into master. I do think that the OPC UA client for Grafana is a very useful add-on.

If you decided to go with .NET and C# then we shall use it in this form, every contribution is welcome. I wish you all the best.

from opcua-datasource.

srclosson avatar srclosson commented on May 19, 2024

Thanks for your comments Marko. I'm not suggesting I would do this work, but one more thought for you. What about bypassing golang entirely. If memory is a constraint, would it not make more ssense to go to open62541 directly using a C grpc backend? I suppose if there is a use case, there is no reason why you could not have multiple backend implementations. One for low memory environments. The trade off being one may be less feature rich than the other, or better supported, etc. etc.

from opcua-datasource.

RavilN avatar RavilN commented on May 19, 2024

My 2 cents: in my opinion implementation of OPC UA Server has nothing to do with the Grafana plugin for OPC UA because the later is a client. I don't think it is typical that the Grafana server would be running in some resource constraint machine, the same where your OPC UA Server is running. I would think that the Grafana server in most cases runs in some PC kind of machine.
And agree with Stephanie that if you decide to use open62541, it is better to write your server in C.

from opcua-datasource.

Related Issues (20)

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.