Skip to content
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

refactor: change alert parts calculations #1084

Open
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

AleksandrMatsko
Copy link
Member

Change the rule for calculating alert parts if they are too big

There is no limits on tag length and tags count, so users can use a lot of long tags. In such case the function that resizes alert parts got bad data, which results to wrong calculations and panic in notifier.

This PR offers new function for resizing alert parts. Now the space is distributed between tags, trigger description and events block. If possible, space is given to description and events.

This PR affects the following senders:

  • mattermost
  • slack
  • telegram

@codecov-commenter
Copy link

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

Attention: Patch coverage is 85.71429% with 11 lines in your changes missing coverage. Please review.

Project coverage is 52.64%. Comparing base (0197720) to head (3493326).
Report is 5 commits behind head on master.

Files with missing lines Patch % Lines
senders/calc_message_parts.go 82.75% 4 Missing and 1 partial ⚠️
senders/msgformat/highlighter.go 70.00% 2 Missing and 1 partial ⚠️
senders/telegram/message_formatter.go 85.71% 2 Missing and 1 partial ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #1084       +/-   ##
===========================================
- Coverage   66.85%   52.64%   -14.21%     
===========================================
  Files         219      287       +68     
  Lines       12778    16593     +3815     
===========================================
+ Hits         8543     8736      +193     
- Misses       3684     7303     +3619     
- Partials      551      554        +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@AleksandrMatsko AleksandrMatsko marked this pull request as ready for review September 17, 2024 06:27
@AleksandrMatsko AleksandrMatsko requested a review from a team as a code owner September 17, 2024 06:27

fairMaxLen := maxChars / 3

if tagsLen > fairMaxLen && descLen <= fairMaxLen && eventsLen <= fairMaxLen {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

давайте этот большой иф на свитч перепишем?

и условия вынесем в функции, имена которых нам будут понятно отвечеть, что это за условия?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поправил. Стало лучше?

return tagsLen, descLen, eventsLen
}

fairMaxLen := maxChars / 3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Теперь да. Между тегами, описанием и метриками

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не, ты не понял, что такое три?))

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не думаю, что хорошая идея эту штуку в константу тащить...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

messagePartsNum и коммент, описывающий

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поправил

message.WriteString(desc)
message.WriteString(eventsString)
return message.String()
return title + tagsStr + "\n" + desc + eventsString
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а почему переписал на такую форму?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну я так понимаю, что при наших объёмах разницы сильно не будет, а так это в одну строчку свернулось.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

хм ну лан

case firstAndSecondIsGreaterThanGivenLenAndOtherLessOrEqual(fairMaxLen, descLen, eventsLen, tagsLen):
// split free space from tags fairly between description and events
spaceFromTags := fairMaxLen - tagsLen
descNewLen = fairMaxLen + spaceFromTags/2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spaceFromTags/2

2 в константу - по коду ниже она тож имеется

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

поправил

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants