intelsdi-x / snap

The open telemetry framework
http://snap-telemetry.io
Apache License 2.0
1.8k stars 296 forks source link

Deprecating Go RPC #1289

Open IRCody opened 7 years ago

IRCody commented 7 years ago

TL;DR

As Snap makes the move to gRPC, we will officially consider the Go RPC plugin libraries deprecated. All plugin authors should consider migrating to utilize the new gRPC. We currently have gRPC plugin libraries for Go and C++.

Plugins written using Go RPC plugins libs will continue to work after the 1.0 release. Removal of support for loading plugins written using the Go RPC libs will be announced well in advance of it’s removal.

Reasoning

It is our goal to provide the ability to write plugins in many languages. We think this is best accomplished by utilizing gRPC. By standardizing on a gRPC interface we can immediately have plugins written in any language that gRPC supports. We plan to offer plugin libs for more popular languages, see: Go libary, C++ library but due to the nature of gRPC nothing is stopping someone from taking the proto file and generating code in their favorite gRPC supported language.If you’re interested in another language you can let us know by opening an issue to let us know or writing your on. We would be happy to link to community created libraries.

What this means for plugins using Go RPC

Plugins written using Go RPC will continue to work for the foreseeable future. The exact timing of when support for them will be dropped hasn’t been decided yet. It will be after the 1.0 release and will be communicated well in advance of it’s removal.

Converting plugins

Converting a plugin to the new libraries should be straightforward. Most of the code will be the same/very similar. For an example of what a converted plugin looks like see the graphite publisher. To get help converting an existing plugin (or writing a new one) come join us on slack.

ConnorDoyle commented 7 years ago

Removal of support for loading plugins written using the Go RPC libs will be announced well in advance of it’s removal.

Can we be more specific? e.g. would it be removed in version 2.0?

bjray commented 7 years ago

@ConnorDoyle, we are still working out the targeted scope for 2.0, but in all likelihood it would be delivered with that release, particularly given that it represents a change to our contract.

kjlyon commented 7 years ago

In PR #1291 I added warnings in the top of each file to be deprecated as well as in the logs which display when a legacy plugin is loaded. I am updating the type of this issue to be a feature, as we are no longer requesting comments on this.

This issue will be closed when the files have been deprecated.