Hi Gao, May be I didn't express clearly,I think the dolphinscheduler-plugin module is a common module for all plugin design, It's not neccessarily to put the implement of a plugin in the dolphinscheduler-plugin module.
I also agree with the following way your said,I see the pr you submited didn't match it now,Will you give a deep design about the following way? > A better way is that user do not need to change the source code to support > new alert method. Instead, they just need to implement some interface, and > compliance with the convention, then package all(include dependencies) in a > single jar file, and put the jar file in some specific place, such as > $DS_HOME/plugins. After that, when start Alert service, the plugins can be > recognized and loaded. So user can choose the alert method in the portal. DolphinScheduler(Incubator) PPMC Gang Li 李岗 [email protected]<mailto:[email protected]> From: hgaol Date: 2020-05-11 19:00 To: [email protected] CC: dev Subject: Re: [PROPOSAL][Feature] Support plugin in Alert service Hi Gang, I agree with that making examples as a pure folder, thanks for your suggestion. For dolphinscheduler-plugin-api, do you mean it’s better to rename this module? I’m not clear about ‘all plugin function need to be implemented here’, do you mean we should put implemented plugin here? BTW, I’ve write a simple doc about how to implement an alert plugin.https://github.com/apache/incubator-dolphinscheduler/pull/2593/files#diff-0bdec77746c7a907bd4fca67469e0a07 Also, I think for some frequently used plugins(email/webhook/...), we could just implement in alert service. Here is the former PR about it. https://github.com/apache/incubator-dolphinscheduler/pull/2572 Thanks for your careful review! Thanks, hgaol On May 11, 2020, at 18:09, [email protected] wrote: Hi Gao, I agree with the following you said,If this is a plugin module,all the plugin function need to be implemented here. Now the name is dolphinscheduler-plugin-api,I think we can change the module name, Such as `dolphinscheduler-plugin`. > I think dolphinscheduler-plugin-api could not only support alert plugin, but > also support java job task for future. That’s another topic. Yes,I think it just a folder,not a sub-module. We can also look at other developers' comments on this. >Do you mean the examples module should not be a sub-module in dolphinscheduler >project pom file, just a pure folder? DolphinScheduler(Incubator) PPMC Gang Li 李岗 [email protected]<mailto:[email protected]> From: hgaol Date: 2020-05-11 17:45 To: dev; lgcareer2019 Subject: Re: [PROPOSAL][Feature] Support plugin in Alert service Hi Gang, Thanks for your suggestion. 1.Whether the function of module dolphinscheduler-plugin-api can be puted in the alert module. [hgaol] The customer should depend on this module to implement their own plugin. If put it into alert service, customer should put `dolphinscheduler-alert` as dependence, which is too heavy for a plugin. Also, I think dolphinscheduler-plugin-api could not only support alert plugin, but also support java job task for future. That’s another topic. 2. I think the examples module can be a folder. [hgaol] Do you mean the examples module should not be a sub-module in dolphinscheduler project pom file, just a pure folder? Thanks, hgaol On May 11, 2020, at 11:51, [email protected] wrote: Hi hgaol, Sorry for not replying in time. I saw you added the module dolphinscheduler-plugin-api and examples module,here are my two points want to discuss. 1、Whether the function of module dolphinscheduler-plugin-api can be puted in the alert module. 2、I think the examples module can be a folder. DolphinScheduler(Incubator) PPMC Gang Li 李岗 [email protected]<mailto:[email protected]> From: hgaol Date: 2020-04-29 23:37 To: dev Subject: Re: [PROPOSAL][Feature] Support plugin in Alert service Hi folks, I’ve created a PR for this feature, here is the link https://github.com/apache/incubator-dolphinscheduler/pull/2572 <https://github.com/apache/incubator-dolphinscheduler/pull/2572> Feel free to let me know if there is any suggestion. Thanks, Han Gao On Apr 28, 2020, at 15:25, xingchun.chen <[email protected]> wrote: It sounds very good, looking forward to your contribution best wish! ------------------ 原始邮件 ------------------ 发件人: "hgaol"<[email protected]>; 发送时间: 2020年4月28日(星期二) 下午3:11 收件人: "dev"<[email protected]>; 主题: [PROPOSAL][Feature] Support plugin in Alert service Hi folks, I think it will be useful for Alert service supporting the plugin management. I’ve create an issue in Github and described about it, here <https://github.com/apache/incubator-dolphinscheduler/issues/2553> is the link. Copy here for convenience. > I think the plugin feature is needed by the customers, because different user may have different environment. For example, I want to use SMS to send alert information, but the SMS API is provided by some system we don't know before, and our DS has already deployed. In this case, I just want to implement the plugin code, and don't change the source code. > > Another benefits are developers can implement different plugin, like slack, wechat, telegram, github issue, and etc... > > Describe the solution you'd like > A clear and concise description of what you want to happen. > > A better way is that user do not need to change the source code to support new alert method. Instead, they just need to implement some interface, and compliance with the convention, then package all(include dependencies) in a single jar file, and put the jar file in some specific place, such as $DS_HOME/plugins. After that, when start Alert service, the plugins can be recognized and loaded. So user can choose the alert method in the portal. > > Currently, I've done some investigations, and if this feature is accepted, I think maybe I can implement it. > > Firstly, I'd better to adapt the current function, which is send mail and something like that. > > Then, we can add some more features, such as Alert handler instance, which is created to describe the alert information(email/slack/wechat/..., to whom, the title, content, and etc…). > > BTW, email and webhook are used frequently. I think they can be the default plugin, and written in the source code, instead of a jar file. Thanks, hgaol
