-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Plan migration to go.d plugin for common collectors #5311
Comments
I think from a longer-term perspective, we need to have a way to prioritize implementations of a collector module. Our current approach of blacklisting the old module in the original collector works fine for migrating stuff to C (because everybody has C support implicitly), but I don't see it working well for migrating from one optional language to another. What we really need is a unified namespace for collection sources (we kind of already have that), and a prioritized list of which implementation of a given collector to use (so, C would be at the top of the list, followed by Go, then Python, then Node (until we drop it), then Bash, then everything else). My first thought is to change the plugin API to provide some way to negotiate what collectors will run in each plugin. Making the API bidirectional and having plugins ask for configuration from the core during startup would make this pretty easy (because the core could just report the modules that shouldn't run as disabled in the config), and would also simplify unifying the configuration across plugins. If we take this approach, we could have each plugin report a 'weight'for the collectors it implements, and wouldn't need to bake-in the above-mentioned list (and could make it easy for people to override the stock implementations with their own). |
We need to agree on definitions, i see it's still confusing. And I think it doesn't matter if module word has special meaning in Netdata currently use:
We need strictly define them. |
It was easy because those modules were modules without jobs/configuration. Otherwise it wouldn't be so easy.
This. We discussed it (central configuration service) |
Python module can be disabled:
Tranlator script logic depends on the disabling approach. |
Configuration translation is very depends on module. Lets take Python version configuration types:
mycnf2:
name : 'local'
'my.cnf' : '/etc/mysql/my.cnf'
socket3:
name : 'local'
# user : ''
# pass : ''
socket : '/var/lib/mysql/mysql.sock'
tcpipv4:
name : 'local'
# user : ''
# pass : ''
host : '127.0.0.1'
port : '3306' Go version uses dsn syntax:
jobs:
- name: local
dsn: netdata@tcp(127.0.0.1:3306)/
- name: local
dsn: root@/
- name: local
dsn: root@unix(/var/run/mysqld/mysqld.sock)/
- name: local
dsn: root@unix(/usr/local/var/mysql/mysql.sock)/ __ So it is not a trivial task, it is easy to make a mistake. |
I went through
|
I like the idea to have a notification in the UI. I think we can live with it until we have a Central Configuration in place. |
We will proceed like this then. |
This issue has been inactive for 30 days. It will be closed in one week, unless it is updated. |
Ok, back to this. We need to mirgate module in lang A to module in lang B. Unfortunately there is no way to completely avoid breaking changes: there is inconsistency between new and old modules, we rethink things doing rewrite, it is a good chance to fix poor naming/grouping/etc. Natural way for me:
Pros:
|
@ilyam8 Sounds sensible to me, though I'd go by minor releases (when we bump the second number in the version, not the third), not months. That will make things easier to track for users who are using stable releases instead of nightlies (and thus who are less likely to notice things other than release notes). I would ideally like to get Go support working on Gentoo before we start actively disabling existing modules and enabling the Go modules, but that's not absolutely critical IMO as we aren't even officially providing a Portage overlay for Gentoo for Netdata yet (though hopefully that will change in the near future). |
Other way is to try to hide migration from the user and make it transparent. All work will be done under the hood - not problems, no bugs, user will notice nothing. My point that it is not possible and more destructive and error prone then prev approach.
As a user i would like to have a clear deprecation schedule, where i could see all upcoming changes and dates and prepare my enviroment. |
This issue has been inactive for 30 days. It will be closed in one week, unless it is updated. |
This issue has been inactive for 30 days. It will be closed in one week, unless it is updated. |
This issue has been automatically closed due to extended period of inactivity. Please reopen if it is still valid. Thank you for your contributions. |
Feature idea summary
Related to #5006
We need to plan the next step for an assisted migration of users from the old plugins to go.d, where we have reimplemented a collector.
Expected behavior
Come up with a design of what we will implement within v1.13
The text was updated successfully, but these errors were encountered: