Improve disqualification information

Usually it is in reverse. The users of the simplified setup will expect that node will fix all issues themselves, but it’s not true. We could burn a lot of hours to implement an AI, which will detect and fix most of issues. But the simple port forwarding will be a most complicated one, unless we also implement a proxy nodes or integrate a proxy to the existing ones, then we will get worse performance for the customers due to passing traffic via few proxy nodes and this will affect both the Storj native and the S3 protocols. And there would be complains, why the foreign traffic is not paid or change the pricing to do not pay the nodes for the traffic, if they are uses proxy nodes to be able to participate. We tried this in v2.

So, with the easy setup the user either will file the support ticket or ask on the forum instead of trying to fix any issue themselves, also the nodes churn will blow up - because it would be easier to delete the node and install again, then post complains about lost money because they didn’t read warning, that with lost data and/or identity their held amount is lost too.
So no, the simplifying setup will increase the amount of required support, because the core will not change, it will remain complicated as today.

doesn’t needed, it regulates itself.

2 Likes

Just to show what I am talking about:

This is the nodes dashboard message:

And the nodes notifications:

There is no notification about the disqualification. This means it also does not show up in the API under /api/notifications/list?page=1&limit=100

{
    "page": {
        "notifications": [{
                "id": "9ccd4096-e8a6-4aa6-953a-83eb70627b6c",
                "senderId": "ID",
                "type": 3,
                "title": "Your Node is suspended since 2024-04-13 12:02:49.093842 +0000 UTC",
                "message": "This is a reminder that your StorageNode is suspended on Satellite 12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs",
                "readAt": "2024-05-31T07:10:41.582779888Z",
                "createdAt": "2024-04-13T15:44:32.849618081Z"
            }, {
                "id": "f6ff8e98-d279-46eb-896c-8ad6f4dd39e8",
                "senderId": "ID",
                "type": 3,
                "title": "Your Node is suspended since 2024-04-01 00:09:49.519085 +0000 UTC",
                "message": "This is a reminder that your StorageNode is suspended on Satellite 1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE",
                "readAt": "2024-05-31T07:10:53.282180118Z",
                "createdAt": "2024-04-01T03:25:52.508760211Z"
            }, {
                "id": "1df19a57-09af-4c6c-99c2-a2ba11495caf",
                "senderId": "ID",
                "type": 3,
                "title": "Your Node is suspended since 2024-03-17 04:38:25.824452 +0000 UTC",
                "message": "This is a reminder that your StorageNode is suspended on Satellite 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S",
                "readAt": null,
                "createdAt": "2024-03-25T06:09:35.775073758Z"
            }
        ],
        "offset": 0,
        "limit": 50,
        "currentPage": 1,
        "pageCount": 1
    },
    "unreadCount": 1,
    "totalCount": 3
}

So if you pull your notification via API you will not see it.
So I should believe a DQ should trigger a notification

When node is disqualified it’s done. What would be the point of this notification? It will be 100% unproductive and non-actionable distraction.

1 Like

The point is this what I have written:

Correct. You won’t see it. Because it’s not needed. I don’t understand what you mean I guess.

Why is a notification that your node got disqualified not needed but a message that a node is suspendend?
Look, if you don’t check your dashboard every day and if you pull the notifications from the API to see what is going on. What is a good reason to not inform the SNO with a notification that a node has been disqualified?

Just imagine you are using Grafana or whatever and you are doing a notification stream to keep being informed by pulling theses messages for multiple nodes from the API.
And there you have it: You get informed about anything being it important or not or not. But you don’t receive a notification that your node got disqualified.

So of course it is needed as well as notification when a node gets out of suspension again.

Because “node is suspended” is a useful notification, just as “node is offline”. You can act to correct the problem, and a notification help you act sooner.

The “node is disqualified” is useless non-actionable notification. Disqualification is permanent, you cannot do anything about it, there is no urgency to learn about it, and it does not merit interrupting someone’s day with notifications. i.e. this notification will be useless, aka spam.

Getting disqualified is permanent, and therefore non-actionable, and therefore notification would be useless.

This is useful - to confirm your efforts to fix things succeed.

But DQ – what are you going to do in repose to this notification? Nothing. Then why bother notifying?

1 Like

AFAIK we don’t have a message when a node gets out of suspension. If I remember correctly there is only a message when a node gets suspendend and a reminder but not when it leaves suspension.

And for the DQ message it is for information that the node has been DQed. It has the same value as the message on the dashboard. I don’t know why we need to argue about this.
If the message is useless, why display it on the dashboard home screen?
It gets displayed, because it is not useless. So I am saying display it as notification as well.

So if you pull a stream of messages from multiple nodes instead of logging into every single one to read the dashboard messages, then you can read the very same information as notification in the stream of messages.

Because I’m a strong believer in minimizing distractions and reserving notifications to really time sensitive things. For DQ message on the dashboard is enough – when I get around checking dashboard I’ll see it. Ideally – never. I don’t check dashboard. I don’t care if I did not notice disqualification. That would mean I also did not notice a series of events preceding to it, so I have bigger problem to address.

So I don’t disagree with making information available. I disagree with force feeding it to the user via notifications.

Good! What I said about it before notwithstanding, this is also an avoidable notification, I was wrong before when I said it’s useful… Knowing that it’s out of suspension is not time sensitive, and does not drive any actions.

And FWIW all notification on my phone, in the browser, everywhere, are off. And if node will start sending me notifications about its events, and I won’ the able to selectively disable them – I’ll turn them all off. So adding these useless notification would be counterproductive.

We don’t argue, we discuss.

Basically, my position is: notifications are noise. We should not be thinking “what else can we notify about”, but instead, “what notifications can we get rid of?”. Ideally – all.

Then we disagree here.
To me a node being disqualified is an important information I want to know about and I want to be “force fed” about it.

I want to see notifications on following events:

  1. Node enters suspension, node leaves suspension
  2. Nodes online score falls below 60% and again when it surpasses 60%
  3. Reminders on days left to DQ (in case of being offline)
  4. When a node finally has been disqualified

If reminders like “node is still suspended” are useful I don’t know. But these notifications would be minimum mandatory for me. The notification section of the API as it is is utterly useless for me.

Actually you get an email when it gets suspended and also when it leaves suspension (with a little delay)

1 Like

So we send an email but we don’t do a notification?
SNOs do not necissarily provide an email. Emails can land in spam folders, email can arrive late, email addresses can be changed…

I am not against sending emails. I am saying: Make the notifications the first citizen. Notable events should be displayed there. Anything else, like message on dashboard, emails, whatever can be done additionally to that.

1 Like

I understand what you want, but not why:

  • why do you consider information about DQ important?
  • how will receiving notification change anything/drive your actions, and if it won’t – how do you assign any value to this notification?

I need to ask you again. If the information that a node has been disqualified is not relevant, why display it on the dashboard at all?

A node being disqualified is an important information because it has been disqualified on a specific satellite.
It shows a node as an issue and immediate action might prevent you from being disqualified from other satellites as well
You might want to take the node offline for max. 30 days, time to solve the issue.
You might want to start a GE on the remaining satellites.
You might want to run the forget satellite script to regain space.
You might want to preserve logs to check if disqualification is justified or object and it m ight or might be overturned
You might want to delete your node.

There is so many different ways to act upon receiving such a notification.

I’m not saying it’s not relevant. I’m saying it’s not urgent at all, and hence, not worthy a notification.

Disqualification should never be driving improvements. The issue should have been noticed and fixed way before disqualification. Acting when it has already been disqualified on any satellite it’s too late.

The rest of the reasons you listed are in no way urgent. For example, I’m not going to delete data to free up space when notification told me to. I’m going to do it when I need space, regardless of notifiction

On the other hand, notification when node went offline is super useful – I even went extra mile and setup external monitoring that sends me an email (which I check every couple of hours a day usually).

Again, I’m not agains having this information, I’m against getting bothered by notification with this information.

Well then, we disagree. The moment a node gets disqualified I want to be informed.
And not learn about it by some accidental look on the dashboard days or months later.
And if you agree that some actions might be urgent or not, thats up to you. These were just examples. But taking a node offline to prevent further disqualifications on more satellites and to have a look at the underlying issue before the node gets dqed on all remaining satellites sounds quite urgent.

You should receive a notification via email, if you provided a correct email. And this notification is visible right away, you even do not need to open a dashboard.
So, what’s the problem this dashboard notification should solve?
The notification about suspension is actionable, the disqualification is a final state, you cannot revert it or fix it.

Yes, I believe we send only online messages to your email after the node went out of offline.

Perhaps you need to configure a Grafana in that case. It behave exactly like this. Actually the Prometheus Alert Manager, but well… Grafana is able to do so too, and it’s easy - status of the node, returned by the API:

No. The note of disqualification is also actionable.
It is a bit funny that you are fighting against printing out the same message you are printing on the dashboard as notification also.
Again: I want to pull all relevant messages from the API. The disqualification message is a relevant one. So I should be able to retrieve it from the notification API. E-Mail is useless.
Maybe I’ll trigger a node emergency shutdown upon receiving a disqualification. You never know.
But what I don’t do is login into every node dashboard to check if there is maybe a disqualification message waiting for me.

Make notifications consistent.