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

feat(telemetry)_: add metrics for message reliability #5899

Merged
merged 2 commits into from
Oct 28, 2024

Conversation

adklempner
Copy link
Contributor

@adklempner adklempner commented Oct 1, 2024

Adds metrics for missed messages, delivery confirmation, and peer count by shard/origin.

Tracks additional events in telemetry:

  • when a message is successfully delivered
  • when a check against a store node detects missed messages (with a separate count for if it was a message relevant to the user, as determined if the filter matches)
  • when a dial to a peer fails, what kind of failure was encountered

Important changes:

Dogfooding PR: status-im/status-desktop#16540

@status-im-auto
Copy link
Member

status-im-auto commented Oct 1, 2024

Jenkins Builds

Click to see older builds (66)
Commit #️⃣ Finished (UTC) Duration Platform Result
✖️ 8f337d6 #1 2024-10-01 05:23:37 ~2 min tests 📄log
✖️ 8f337d6 #1 2024-10-01 05:24:09 ~2 min tests-rpc 📄log
✔️ 8f337d6 #1 2024-10-01 05:25:17 ~4 min linux 📦zip
✔️ 8f337d6 #1 2024-10-01 05:25:57 ~4 min android 📦aar
✔️ 8f337d6 #1 2024-10-01 05:26:14 ~5 min ios 📦zip
✔️ 9602427 #2 2024-10-03 04:38:57 ~2 min linux 📦zip
✖️ 9602427 #2 2024-10-03 04:39:21 ~2 min tests 📄log
✖️ 9602427 #2 2024-10-03 04:39:30 ~2 min tests-rpc 📄log
✔️ 9602427 #2 2024-10-03 04:39:57 ~3 min ios 📦zip
✔️ 9602427 #2 2024-10-03 04:41:25 ~4 min android 📦aar
da52228 #3 2024-10-03 21:31:24 ~36 sec android 📄log
da52228 #3 2024-10-03 21:31:43 ~37 sec ios 📄log
✖️ da52228 #3 2024-10-03 21:32:17 ~1 min tests-rpc 📄log
da52228 #3 2024-10-03 21:32:24 ~1 min linux 📄log
✖️ da52228 #3 2024-10-03 21:33:11 ~2 min tests 📄log
903b6e2 #4 2024-10-04 03:58:32 ~31 sec ios 📄log
903b6e2 #4 2024-10-04 03:58:50 ~33 sec android 📄log
903b6e2 #4 2024-10-04 03:58:51 ~44 sec linux 📄log
✖️ 903b6e2 #4 2024-10-04 03:59:27 ~1 min tests-rpc 📄log
✖️ 903b6e2 #4 2024-10-04 03:59:39 ~1 min tests 📄log
b3308f8 #5 2024-10-04 22:48:40 ~31 sec ios 📄log
b3308f8 #5 2024-10-04 22:49:19 ~1 min android 📄log
✖️ b3308f8 #5 2024-10-04 22:49:32 ~1 min tests 📄log
✖️ b3308f8 #5 2024-10-04 22:49:40 ~1 min tests-rpc 📄log
b3308f8 #5 2024-10-04 22:49:51 ~1 min linux 📄log
972f83b #6 2024-10-04 22:49:51 ~55 sec ios 📄log
972f83b #6 2024-10-04 22:50:34 ~1 min android 📄log
✖️ 972f83b #6 2024-10-04 22:51:07 ~1 min tests 📄log
972f83b #6 2024-10-04 22:51:17 ~1 min linux 📄log
✖️ 972f83b #6 2024-10-04 22:51:38 ~1 min tests-rpc 📄log
c875edc #7 2024-10-08 03:30:59 ~49 sec android 📄log
c875edc #7 2024-10-08 03:31:08 ~54 sec ios 📄log
c875edc #7 2024-10-08 03:31:20 ~1 min linux 📄log
✖️ c875edc #7 2024-10-08 03:32:02 ~1 min tests-rpc 📄log
✖️ c875edc #7 2024-10-08 03:33:04 ~2 min tests 📄log
✖️ b3b0f2e #8 2024-10-09 17:30:07 ~2 min tests 📄log
✔️ b3b0f2e #8 2024-10-09 17:31:20 ~3 min linux 📦zip
✔️ b3b0f2e #8 2024-10-09 17:32:30 ~4 min ios 📦zip
✔️ b3b0f2e #8 2024-10-09 17:33:01 ~5 min android 📦aar
✔️ b3b0f2e #8 2024-10-09 17:33:15 ~5 min tests-rpc 📄log
✔️ ace5b50 #9 2024-10-09 18:05:46 ~2 min linux 📦zip
✔️ ace5b50 #9 2024-10-09 18:07:02 ~4 min ios 📦zip
✔️ ace5b50 #9 2024-10-09 18:07:24 ~4 min android 📦aar
✔️ ace5b50 #9 2024-10-09 18:08:06 ~5 min tests-rpc 📄log
✔️ ace5b50 #9 2024-10-09 18:35:14 ~32 min tests 📄log
✔️ 73a8f56 #10 2024-10-17 03:01:43 ~4 min linux 📦zip
✔️ 73a8f56 #10 2024-10-17 03:02:22 ~4 min ios 📦zip
✔️ 73a8f56 #10 2024-10-17 03:02:34 ~5 min android 📦aar
✔️ 73a8f56 #10 2024-10-17 03:03:00 ~5 min tests-rpc 📄log
✔️ 73a8f56 #10 2024-10-17 03:30:42 ~33 min tests 📄log
6a50b1a #11 2024-10-19 02:17:05 ~13 sec linux 📄log
✔️ 6a50b1a #11 2024-10-19 02:20:05 ~3 min ios 📦zip
✔️ 6a50b1a #11 2024-10-19 02:21:44 ~4 min android 📦aar
✔️ 6a50b1a #11 2024-10-19 02:22:17 ~5 min tests-rpc 📄log
✔️ 6a50b1a #12 2024-10-19 02:27:13 ~4 min linux 📦zip
✔️ 6a50b1a #11 2024-10-19 02:50:32 ~33 min tests 📄log
✖️ dff912f #12 2024-10-25 00:20:36 ~3 min tests 📄log
✔️ dff912f #12 2024-10-25 00:21:37 ~4 min ios 📦zip
✔️ dff912f #13 2024-10-25 00:21:43 ~4 min linux 📦zip
✖️ dff912f #12 2024-10-25 00:22:41 ~5 min tests-rpc 📄log
✔️ dff912f #12 2024-10-25 00:22:57 ~5 min android 📦aar
✔️ 70672a9 #13 2024-10-28 15:13:27 ~3 min ios 📦zip
✔️ 70672a9 #14 2024-10-28 15:15:27 ~5 min linux 📦zip
✖️ 70672a9 #13 2024-10-28 15:16:20 ~6 min tests-rpc 📄log
✔️ 70672a9 #13 2024-10-28 15:16:29 ~6 min android 📦aar
✔️ 70672a9 #13 2024-10-28 15:43:38 ~33 min tests 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 06e9025 #14 2024-10-28 15:17:14 ~3 min ios 📦zip
✔️ 06e9025 #15 2024-10-28 15:20:36 ~4 min linux 📦zip
✖️ 06e9025 #14 2024-10-28 15:22:25 ~5 min tests-rpc 📄log
✔️ 06e9025 #14 2024-10-28 15:22:58 ~6 min android 📦aar
✖️ 06e9025 #15 2024-10-28 15:36:58 ~5 min tests-rpc 📄log
✔️ 06e9025 #14 2024-10-28 16:16:26 ~32 min tests 📄log
✖️ 06e9025 #16 2024-10-28 20:05:30 ~5 min tests-rpc 📄log
✔️ f24ff9c #15 2024-10-28 21:07:26 ~3 min ios 📦zip
✔️ f24ff9c #16 2024-10-28 21:08:09 ~4 min linux 📦zip
✔️ f24ff9c #17 2024-10-28 21:09:22 ~5 min tests-rpc 📄log
✔️ f24ff9c #15 2024-10-28 21:09:59 ~6 min android 📦aar
✔️ f24ff9c #15 2024-10-28 21:36:58 ~33 min tests 📄log

@codecov-commenter
Copy link

codecov-commenter commented Oct 1, 2024

Codecov Report

Attention: Patch coverage is 60.37736% with 63 lines in your changes missing coverage. Please review.

Project coverage is 47.61%. Comparing base (7971fd3) to head (f24ff9c).
Report is 20 commits behind head on develop.

✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
wakuv2/common/helpers.go 54.05% 32 Missing and 2 partials ⚠️
telemetry/client.go 75.00% 16 Missing and 1 partial ⚠️
wakuv2/waku.go 29.41% 7 Missing and 5 partials ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #5899      +/-   ##
===========================================
+ Coverage    47.20%   47.61%   +0.40%     
===========================================
  Files          840      842       +2     
  Lines       138167   138390     +223     
===========================================
+ Hits         65225    65889     +664     
+ Misses       65406    64704     -702     
- Partials      7536     7797     +261     
Flag Coverage Δ
functional 10.58% <0.00%> (?)
unit 46.92% <60.37%> (-0.29%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
wakuv2/waku.go 69.35% <29.41%> (-1.99%) ⬇️
telemetry/client.go 73.11% <75.00%> (+1.53%) ⬆️
wakuv2/common/helpers.go 48.09% <54.05%> (+7.74%) ⬆️

... and 121 files with indirect coverage changes

@adklempner adklempner force-pushed the feat/telemetry-message-reliability branch 8 times, most recently from b3b0f2e to ace5b50 Compare October 9, 2024 18:02
@adklempner adklempner force-pushed the feat/telemetry-message-reliability branch from ace5b50 to 73a8f56 Compare October 17, 2024 02:57
@adklempner adklempner requested review from richard-ramos, igor-sirotin and a team October 17, 2024 18:41
@adklempner adklempner force-pushed the feat/telemetry-message-reliability branch from 73a8f56 to 6a50b1a Compare October 19, 2024 02:16
PeerCountByOriginMetric TelemetryType = "PeerCountByOrigin"
DialFailureMetric TelemetryType = "DialFailure"
MissedMessageMetric TelemetryType = "MissedMessages"
MissedRelevantMessageMetric TelemetryType = "MissedRelevantMessages"
Copy link
Contributor

Choose a reason for hiding this comment

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

It would be great to add some comments(like how it works) on these MissedXXX types

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added comments for each type indicating what is being tracked

@adklempner adklempner force-pushed the feat/telemetry-message-reliability branch from 6a50b1a to dff912f Compare October 25, 2024 00:16
Copy link
Contributor

@qfrank qfrank left a comment

Choose a reason for hiding this comment

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

LGTM

postBody["errorType"] = dialFailure.ErrorType
postBody["errorMsg"] = dialFailure.ErrorMsg
postBody["protocols"] = dialFailure.Protocols
body, _ := json.Marshal(postBody)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why ignore the error? 🤔

for _, attempt := range dialAttempts {
attempt = strings.TrimSpace(strings.Trim(attempt, "* "))
matches := reAttempt.FindStringSubmatch(attempt)
if len(matches) == 3 {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
if len(matches) == 3 {
if len(matches) != 3 {
continue
}
// ...

Comment on lines +182 to +199
func (det DialErrorType) String() string {
return [...]string{
"Unknown",
"I/O Timeout",
"Connection Refused",
"Relay Circuit Failed",
"Relay No Reservation",
"Security Negotiation Failed",
"Concurrent Dial Succeeded",
"Concurrent Dial Failed",
"Connections Per IP Limit Exceeded",
"Stream Reset",
"Relay Resource Limit Exceeded",
"Error Opening Hop Stream to Relay",
"Dial Backoff",
}[det]
Copy link
Collaborator

Choose a reason for hiding this comment

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

Though I like the hack, I think map[string]string is a more reliable solution in terms of potential changes. And the performance should remain the same.

@adklempner adklempner force-pushed the feat/telemetry-message-reliability branch from dff912f to 70672a9 Compare October 28, 2024 15:09
Add metrics for dial errors, missed messages,
missed relevant messages, and confirmed delivery.
@adklempner adklempner force-pushed the feat/telemetry-message-reliability branch from 70672a9 to 06e9025 Compare October 28, 2024 15:13
@adklempner adklempner merged commit 153c5db into develop Oct 28, 2024
16 of 18 checks passed
@adklempner adklempner deleted the feat/telemetry-message-reliability branch October 28, 2024 22:01
shashankshampi added a commit that referenced this pull request Oct 30, 2024
author shashankshampi <[email protected]> 1729780155 +0530
committer shashankshampi <[email protected]> 1730274350 +0530

test: Code Migration from status-cli-tests
fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <[email protected]>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <[email protected]>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

fix(ci)_: remove workspace and tmp dir

This ensures we do not encounter weird errors like:
```
+ ln -s /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907 /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go
ln: failed to create symbolic link '/home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go': File exists
script returned exit code 1
```

Signed-off-by: Jakub Sokołowski <[email protected]>

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

cleanup

added logger and cleanup

review comments changes

fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <[email protected]>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <[email protected]>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

test_: remove port bind

chore(wallet)_: move route execution code to separate module

chore_: replace geth logger with zap logger (#5962)

closes: #6002

feat(telemetry)_: add metrics for message reliability (#5899)

* feat(telemetry)_: track message reliability

Add metrics for dial errors, missed messages,
missed relevant messages, and confirmed delivery.

* fix_: handle error from json marshal

chore_: use zap logger as request logger

iterates: status-im/status-desktop#16536

test_: unique project per run

test_: use docker compose v2, more concrete project name

fix(codecov)_: ignore folders without tests

Otherwise Codecov reports incorrect numbers when making changes.
https://docs.codecov.com/docs/ignoring-paths

Signed-off-by: Jakub Sokołowski <[email protected]>

test_: verify schema of signals during init; fix schema verification warnings (#5947)

fix_: update defaultGorushURL (#6011)

fix(tests)_: use non-standard port to avoid conflicts

We have observed `nimbus-eth2` build failures reporting this port:
```json
{
  "lvl": "NTC",
  "ts": "2024-10-28 13:51:32.308+00:00",
  "msg": "REST HTTP server could not be started",
  "topics": "beacnde",
  "address": "127.0.0.1:5432",
  "reason": "(98) Address already in use"
}
```
https://ci.status.im/job/nimbus-eth2/job/platforms/job/linux/job/x86_64/job/main/job/PR-6683/3/

Signed-off-by: Jakub Sokołowski <[email protected]>

fix_: create request logger ad-hoc in tests

Fixes `TestCall` failing when run concurrently.

chore_: configure codecov (#6005)

* chore_: configure codecov

* fix_: after_n_builds
shashankshampi added a commit that referenced this pull request Oct 30, 2024
author shashankshampi <[email protected]> 1729780155 +0530
committer shashankshampi <[email protected]> 1730274350 +0530

test: Code Migration from status-cli-tests
fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <[email protected]>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <[email protected]>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

fix(ci)_: remove workspace and tmp dir

This ensures we do not encounter weird errors like:
```
+ ln -s /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907 /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go
ln: failed to create symbolic link '/home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go': File exists
script returned exit code 1
```

Signed-off-by: Jakub Sokołowski <[email protected]>

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

cleanup

added logger and cleanup

review comments changes

fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <[email protected]>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <[email protected]>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

test_: remove port bind

chore(wallet)_: move route execution code to separate module

chore_: replace geth logger with zap logger (#5962)

closes: #6002

feat(telemetry)_: add metrics for message reliability (#5899)

* feat(telemetry)_: track message reliability

Add metrics for dial errors, missed messages,
missed relevant messages, and confirmed delivery.

* fix_: handle error from json marshal

chore_: use zap logger as request logger

iterates: status-im/status-desktop#16536

test_: unique project per run

test_: use docker compose v2, more concrete project name

fix(codecov)_: ignore folders without tests

Otherwise Codecov reports incorrect numbers when making changes.
https://docs.codecov.com/docs/ignoring-paths

Signed-off-by: Jakub Sokołowski <[email protected]>

test_: verify schema of signals during init; fix schema verification warnings (#5947)

fix_: update defaultGorushURL (#6011)

fix(tests)_: use non-standard port to avoid conflicts

We have observed `nimbus-eth2` build failures reporting this port:
```json
{
  "lvl": "NTC",
  "ts": "2024-10-28 13:51:32.308+00:00",
  "msg": "REST HTTP server could not be started",
  "topics": "beacnde",
  "address": "127.0.0.1:5432",
  "reason": "(98) Address already in use"
}
```
https://ci.status.im/job/nimbus-eth2/job/platforms/job/linux/job/x86_64/job/main/job/PR-6683/3/

Signed-off-by: Jakub Sokołowski <[email protected]>

fix_: create request logger ad-hoc in tests

Fixes `TestCall` failing when run concurrently.

chore_: configure codecov (#6005)

* chore_: configure codecov

* fix_: after_n_builds
fbarbu15 pushed a commit that referenced this pull request Nov 9, 2024
author shashankshampi <[email protected]> 1729780155 +0530
committer shashankshampi <[email protected]> 1730274350 +0530

test: Code Migration from status-cli-tests
fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <[email protected]>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <[email protected]>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

fix(ci)_: remove workspace and tmp dir

This ensures we do not encounter weird errors like:
```
+ ln -s /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907 /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go
ln: failed to create symbolic link '/home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go': File exists
script returned exit code 1
```

Signed-off-by: Jakub Sokołowski <[email protected]>

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

cleanup

added logger and cleanup

review comments changes

fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <[email protected]>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <[email protected]>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

test_: remove port bind

chore(wallet)_: move route execution code to separate module

chore_: replace geth logger with zap logger (#5962)

closes: #6002

feat(telemetry)_: add metrics for message reliability (#5899)

* feat(telemetry)_: track message reliability

Add metrics for dial errors, missed messages,
missed relevant messages, and confirmed delivery.

* fix_: handle error from json marshal

chore_: use zap logger as request logger

iterates: status-im/status-desktop#16536

test_: unique project per run

test_: use docker compose v2, more concrete project name

fix(codecov)_: ignore folders without tests

Otherwise Codecov reports incorrect numbers when making changes.
https://docs.codecov.com/docs/ignoring-paths

Signed-off-by: Jakub Sokołowski <[email protected]>

test_: verify schema of signals during init; fix schema verification warnings (#5947)

fix_: update defaultGorushURL (#6011)

fix(tests)_: use non-standard port to avoid conflicts

We have observed `nimbus-eth2` build failures reporting this port:
```json
{
  "lvl": "NTC",
  "ts": "2024-10-28 13:51:32.308+00:00",
  "msg": "REST HTTP server could not be started",
  "topics": "beacnde",
  "address": "127.0.0.1:5432",
  "reason": "(98) Address already in use"
}
```
https://ci.status.im/job/nimbus-eth2/job/platforms/job/linux/job/x86_64/job/main/job/PR-6683/3/

Signed-off-by: Jakub Sokołowski <[email protected]>

fix_: create request logger ad-hoc in tests

Fixes `TestCall` failing when run concurrently.

chore_: configure codecov (#6005)

* chore_: configure codecov

* fix_: after_n_builds
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.

5 participants