JustArchiNET / ArchiSteamFarm

C# application with primary purpose of farming Steam cards from multiple accounts simultaneously.
Apache License 2.0
10.92k stars 1.04k forks source link

Add official monitoring plugin #3160

Closed Abrynos closed 3 months ago

Abrynos commented 4 months ago

Checklist

Changes

New functionality

Added official plugin for monitoring, which is NOT included with ASF by default.

Changed functionality

None

Removed functionality

None

Additional info

I am prepared to provide maintenance and support for this plugin, but I prefer this to be an OFFICIAL plugin, keeping my home setup supported in turn.

I've prepared the plugin to be updatable from GitHub and the pipelines to compile the plugin, but I've not yet changed the pipeline to zip and upload the binaries. The scripting skills of @JustArchi are superior to mine in every way and I am sure you would have thousands of complaints if I added that myself. It's faster if you do it in the post-PR cleanup (thanks in advance <3)


Thank you for considering the inclusion of this merge request.

Abrynos commented 4 months ago

Just saw this comment:

Also overall question - can this plugin be extended by meters that other plugins could possibly add?

As per my messages towars Archi earlier on our discord channel:

In the current state it is not, but I have put some thoughts into it and I would like the input of other people.

One option is to add an interface to ASF core, which the plugin could utilize. However, I am not a fan of adding features that are only used by a plugin that is not distributed by default.

Another solution would be to add a public interface to the plugin project itself and tell people to add a reference to it. However, that requires this plugin to be installed even on setups that might not utilize monitoring capabilties.

A third option is to somehow discover meters added by plugins in a way that neither adds a monitoring-specific interface to ASF core nor to this plugin. This would be my preferred option, but I am unsure of how to achieve this in a nice way. Of course we could load meter names from the configuration, but that would mean that users need to manually add the meters of alls their plugins and I am definitely not in favour of that.

JustArchi commented 3 months ago

Thanks! :trophy: