<@U021151C4QJ> Which type of backend work are you ...
# contributing
a
@User Which type of backend work are you comfortable with? A few options I can think of: • Frontend bugs and features • Writing test cases • Development in Golang -> add more features • Adding support for anything that you feel is missing • Adding CI • Different cluster configs to test scalability of system • Refactor to support more queuing systems like AWS SQS, Kinesis, Redis • Add more deployment options to Heroku/Fargate + CloudFormation templates and more, Let me know which kind of work you would be most interested in? Would be happy to dig deeper.
a
Hey, thanks for sharing this. I can take up a feature development or the refactor for supporting other queuing systems. I am not still not sure about how much time I can contribute. Taking that into consideration, I would like something which does not block anything you have planned on the roadmap
Adding CI is an independent thing and I can pick that up may be. What do you think about doing it using github actions? @User
Or I can pick up bugs, I think that would help a lot in getting familiar with code base
a
Are you comfortable with golang?
Taking that into consideration, I would like something which does not block anything you have planned on the roadmap
Right
a
Yes I am comfortable with golang
a
Cool 👍 Lemme come up with a few issues which would be best to get started with. 🙂
Hey @User What do you think about https://github.com/SigNoz/signoz/issues/53? This will help you gain some understanding of the system. Instead of
/swagger
endpoint, you can choose a span name (operation name) that you don't want to see in SigNoz and thus exclude this from being sent from otel-collector. You will get to learn how otel processors work and finally, if spans are excluded, they must not be visible in the UI. Hence, an overall understanding of SigNoz.
a
Writing test cases
@User I think I can start with flattener-processor or query-service. I explored a bit for the testing framework which go provides : https://golang.org/pkg/testing/ which we can use. Also for flattener-processor. do we need to add unit test cases for util methods as such : https://github.com/Signoz/signoz/blob/main/pkg/processors/flattener/main.go#L107
let me know if you have any specific test case approach in mind.
a
@User that will be a good start. I would suggest to start with flattener processor and raise a PR so that we get the complete setup ready with your PR merged. You can also exempt these util functions. Query Service is undergoing a bit of refactor so would suggest not to pick it up now. Maybe in 7-10 days.
👍 1
a
@User https://gitlab.com/signoz-public/spanprocessor is there any doc for this component?
a
@User https://gitlab.com/signoz-public/spanprocessor this has no correlation to open-telemetry processor.
a
thanks 🙂
a
I have separated the data model and marshalling & unmarshalling of proto data into https://gitlab.com/signoz-public/spanprocessor
👍 1
In the flattener processor that library is just used to unmarshall proto data into golang structs
a
oh makes sense. btw one more query. https://github.com/SigNoz/signoz/blob/main/pkg/processors/flattener/main.go#L165
func printTraces(traces_pt *pdata.Traces)
Traces where from this is populated?
// Traces is the top-level struct that is propagated through the traces pipeline.
// This is the newer version of consumerdata.Traces, but uses more efficient
// in-memory representation.
type Traces struct {
orig *[]*otlptrace.ResourceSpans
}
from the code
a
printTraces
is commented out at https://github.com/SigNoz/signoz/blob/main/pkg/processors/flattener/main.go#L308
process
method is automatically invoked with the data. This method is fed as parameter to goka library Input function which reads streaming data from Kafka. Have a look at https://github.com/SigNoz/signoz/blob/main/pkg/processors/flattener/main.go#L346
👍 1
🙌 1
a
sorry I actually meant process func instead of printTraces makes sense now. will explore more on it. 🙌
👍 1
still working on it. took some time to grasp go-lang and all the services involved. did a deep dive into the rabbithole where it led me to. really interesting 🙌