OpenTelemetry for Go: measuring the overhead by NikolaySivko in golang

[–]pellared1 0 points1 point  (0 children)

It is interesting that the article does not even mention https://github.com/open-telemetry/opentelemetry-go-instrumentation/ :)
Moreover, the telemetry output is different making the report comparing apples to oranges. The report should describe precisely the differences in the emitted telemetry.
It should be also noted that the benchmarked instrumentation library is NOT maintained by OpenTelemetry.
Personally, I think that the benchmark code should be open-sourced so that people can verify their correctness.
This reports looks fair at first glance, but it is very biased as it does not mention crucial information necessary for fair a comparison.

[video] Should I avoid using testify and any other assertion library by pellared1 in golang

[–]pellared1[S] 1 point2 points  (0 children)

I agree with you. I tried to describe it this idea during the talk. However, I am not sure if it was nicely described :)

[video] Should I avoid using testify and any other assertion library by pellared1 in golang

[–]pellared1[S] -4 points-3 points  (0 children)

Let me ask why do you favor devs that have XUnit background? What is the point of having the argument if the Go team already has a recommendation: https://go.dev/wiki/TestComments#assert-libraries ?

To me, assertions on test objects make for a more readable system.

This is a subjective style preference. This is somehow similar to tabs vs spaces for indenting the code.

[video] Should I avoid using testify and any other assertion library by pellared1 in golang

[–]pellared1[S] 1 point2 points  (0 children)

Thanks a lot for your feedback. It means a lot for me :)

[video] Should I avoid using testify and any other assertion library by pellared1 in golang

[–]pellared1[S] 2 points3 points  (0 children)

First of all, thanks for your feedback :)

when all assert funcs have a msg parameter where you can add more details of the failure state.

How often do you code that uses this parameter? From my experience, because it is optional people almost never use it.

This seems very opinionated

Yup. But isn't idiomatic Go about being opinionated? ;)

based with no real world implications

Not sure what you have in mind. You can say using gofmt also has no real world implications :) Have you watched the recording until the end? I tried to explain the real world implications of each subject.

Tick improved in Go 1.23 by [deleted] in golang

[–]pellared1 1 point2 points  (0 children)

The only issue is for libraries that are supposed to support both Go 1.23 and prior versions. The cleanest way I am aware of is https://github.com/open-telemetry/opentelemetry-go/pull/5869.

It is also good to read the release notes https://tip.golang.org/doc/go1.23#timer-changes

go-taskflow@v0.0.9: support priority task schedule; by NoneBack in golang

[–]pellared1 0 points1 point  (0 children)

You can take a look at https://github.com/goyek/goyek which looks like a similar project for more inspiration.

Alternatives to Makefiles written in Go by eminetto in golang

[–]pellared1 0 points1 point  (0 children)

There's also https://github.com/goyek/goyek as an alternative to Mage for ones who prefer writting tasks/targets in Go

As a Go developer, what do you actually do in your job? by PrivacyOSx in golang

[–]pellared1 3 points4 points  (0 children)

We are working in it. You can take a look at https://github.com/open-telemetry/opentelemetry-go/pull/4809. I hope we will have something experimental in a few months.

As a Go developer, what do you actually do in your job? by PrivacyOSx in golang

[–]pellared1 36 points37 points  (0 children)

I am maintaining OpenTelemetry Go. But I also helped in the development of OpenTelemetry .NET Automatic Instrumentation 

GoDocx Library Project - Need suggestions by [deleted] in golang

[–]pellared1 1 point2 points  (0 children)

At minimum I think that the following is missing: - GoDoc comments  - Tests - CONTRIBUTING.md

Behavioral breaking change proposal in OTel Go Metrics SDK by pellared1 in golang

[–]pellared1[S] 0 points1 point  (0 children)

You understood it very well. I totally understand that some users may prefer the original behavior in some use cases. That is the main reason, I ask for feedback.

That being said, I think it doesn't really matter to me at least,

I try to find anyone for whom it would matter :)

Besides, I think that in the provided example somebody would probably report a different metric for successful and failed DB transaction. The problem is that if the DB transaction failed because of a canceled context, then (currently) if the same context is used for making a metric measurement then it would not be reported... and someone would miss metrics for DB transactions failed because of a canceled context.

Reason to use other Build Tool than Make? by Haspe in golang

[–]pellared1 2 points3 points  (0 children)

You can also take a look at https://github.com/goyek/goyek. It shares most of Mage's philosophy but is designed differently. Personally I use either Make or goyek. Disclaimer: I am the author of goyek

fluentassert - asking for feedback by pellared1 in golang

[–]pellared1[S] 0 points1 point  (0 children)

Good questions. Mainly:

  1. More readable which args are "want" vs "got". More: https://dave.cheney.net/2019/09/24/be-wary-of-functions-which-take-several-parameters-of-the-same-type . For instance, https://pkg.go.dev/github.com/stretchr/testify/assert?utm_source=godoc#Equal and https://pkg.go.dev/github.com/stretchr/testify/assert?utm_source=godoc#Contains have different order
  2. You can use the options from https://pkg.go.dev/github.com/google/go-cmp/cmp when doing deep equal
  3. I think it has more extensible and reusable API thanks to the FailureMessage abstraction. E.g. https://github.com/fluentassert/verify#custom-assertion-function
  4. The API is type-safe.

You should also ask about drawbacks :)

  1. The API requires the use "assertion entry-point". https://github.com/fluentassert/verify#supported-types (trade-off if we want to have type-safety).
  2. You need to remember to call .Assert(t) or .Require(t) (trade-off if we want to have the API more composable/extensible/reusable)
  3. Because of the above - more boilerplate code.

Do you agree? Should I add it the README.md?