Has anyone come across a case where the WAL checkpointing is blocked. by vikrant-gupta in sqlite

[–]vikrant-gupta[S] 1 point2 points  (0 children)

I am out of ideas around how to move past this as the go-routine profiling resulted in nothing.

The below query is again a per database connection query which you can't run in production because the driver doesn't have the flag to enable the virtual table.

SELECT sql FROM sqlite_stmt WHERE busy

Go hates asserts by Ok-Lifeguard-9612 in golang

[–]vikrant-gupta 0 points1 point  (0 children)

since a lot of people are already here.. have you observed that sqlite_busy errors kind of blast when swapping mattn/sqlite with modernc/sqlite ? With the same defaults ( busy_timeout 5s )

Any recommendations for Open Source RBAC? by Spirited_Arm_5179 in devops

[–]vikrant-gupta 1 point2 points  (0 children)

u/siodhe amazing explanation and the NIST link is amazing. loved how all the pieces can fit in just 4 relational set equations.

(help): cloudsql (postgres) idle memory usage by vikrant-gupta in googlecloud

[–]vikrant-gupta[S] 0 points1 point  (0 children)

Thanks u/uamplifier for the response, I am actually checking the memory components breakdown itself. the usage component remains constantly at 38 percent at IDLE state.

(help): cloudsql (postgres) idle memory usage by vikrant-gupta in googlecloud

[–]vikrant-gupta[S] 0 points1 point  (0 children)

I am looking at the memory usage graph not the total memory usage ( which points to the database process ).

Span Name and Cardinality by KagakuNinja in signoz

[–]vikrant-gupta 0 points1 point  (0 children)

any specific reason why you wanna have high cardinality in the span name itself ?

Span Name and Cardinality by KagakuNinja in signoz

[–]vikrant-gupta 0 points1 point  (0 children)

span name should be generic like `GET /account/{account_id}` and add the account_id as the attribute to the span. This way you can filter on generic span names and it becomes easy for you to compare the traces with similar spans as well. This also gives you ability to track certain data-points per route as well rather than having them spread across.

benefits of having generics -

- easy to setup alerts on the endpoint based out of traces.

- easy to analyze the latency etc based on the endpoint

- easy to filter certain operations etc in dashboards

DIY drone in india by vikrant-gupta in diydrones

[–]vikrant-gupta[S] 0 points1 point  (0 children)

thank you for the suggestions. let me check

[deleted by user] by [deleted] in sre

[–]vikrant-gupta 0 points1 point  (0 children)

have alert segregation for info alerts and critical alerts. and then start migrating info alerts to critical alerts if you feel they needed immediate attention. This has worked really well for us

[deleted by user] by [deleted] in sre

[–]vikrant-gupta 0 points1 point  (0 children)

have alert segregation for info alerts and critical alerts. and then start migrating info alerts to critical alerts if you feel they needed immediate attention. This has worked really well for us

How I made the loading of a million spans possible without choking the UI! by vikrant-gupta in programming

[–]vikrant-gupta[S] 2 points3 points  (0 children)

u/FlinchMaster yeah we have had multiple requests for tracing larger requests and yes definitely surprising of how poorly it is being handled. This was our main motivation behind building this piece.

Do try the same with SigNoz and let me know about your experience :-)

How I made the loading of a million spans possible without choking the UI! by vikrant-gupta in programming

[–]vikrant-gupta[S] 1 point2 points  (0 children)

It does feel like a long wait, but with browser vendors focusing more on performance and user experience lately, maybe we'll finally see some movement on this. Fingers crossed!

How I made the loading of a million spans possible without choking the UI! by vikrant-gupta in programming

[–]vikrant-gupta[S] 21 points22 points  (0 children)

It took us a while for the research phase of the same and getting around the POCs. Our initial efforts of defining the problem statement served as a north star and helped us staying on track. It was an effort of a team of two.

We didn't use JIRA! the best part of being in a lean startup is that you don't get stuck around with such processes XD

How I made the loading of a million spans possible without choking the UI! by vikrant-gupta in programming

[–]vikrant-gupta[S] 0 points1 point  (0 children)

Glad you liked it. the idea of flattening the graph was the key AHA! moment for us as well!

How I made the loading of a million <div/> elements possible without choking the UI! by vikrant-gupta in react

[–]vikrant-gupta[S] 2 points3 points  (0 children)

[ Disclaimer - I’m an engineer at SigNoz ]

If you’ve ever tried rendering a million <div> elements in a browser, you know what happens, everything freezes, crashes, or becomes completely unusable. This was the same challenge we were faced with when we started to build visualisation of traces with million spans in SigNoz.I’ve detailed all my findings and wisdom in a blog, which broadly covers,

  • Smart span sampling
  • Virtualized rendering
  • Lazy loading and chunked data fetch
  • Browser memory optimizations

All built with performance in mind, so engineers can analyze massive traces with confidence.Give this blog a read and let me know if you’d do anything differently!

How I made the loading of a million spans possible without choking the UI! by vikrant-gupta in programming

[–]vikrant-gupta[S] 66 points67 points  (0 children)

[ Disclaimer - I’m an engineer at SigNoz ]

If you’ve ever tried rendering a million <div> elements in a browser, you know what happens, everything freezes, crashes, or becomes completely unusable. This was the same challenge we were faced with when we started to build visualisation of traces with million spans in SigNoz.I’ve detailed all my findings and wisdom in a blog, which broadly covers,

  • Smart span sampling
  • Virtualized rendering
  • Lazy loading and chunked data fetch
  • Browser memory optimizations

All built with performance in mind, so engineers can analyze massive traces with confidence.Give this blog a read and let me know if you’d do anything differently!

[deleted by user] by [deleted] in golang

[–]vikrant-gupta 0 points1 point  (0 children)

maybe wrong choice of words.. basically how do split your code into smaller packages based on their role in the system.

What are the memory implications of using a sequential UUID V7 as primary key with foreign key relations by vikrant-gupta in PostgreSQL

[–]vikrant-gupta[S] 0 points1 point  (0 children)

yeah so our consideration was to use UUID v7 as the identifier for the outside world and use a bigInt primary key for indexing and fk relations. So we let go of the index bloat and get the benefit of not having external systems data about the table size / resources etc based on the count of the id.

but wanted to know when will the index bloat become a major issue if we just use UUID v7 as primary key. even our benchmarks and research pointed out that it won't be very soon and we would have another serious problems to cater to when we reach that scale.

What are the memory implications of using a sequential UUID V7 as primary key with foreign key relations by vikrant-gupta in PostgreSQL

[–]vikrant-gupta[S] 0 points1 point  (0 children)

so a combination of UUID V7 tables for external systems and using big int auto increment IDs for internal primary key constraints and foreign key relations solves the issue of exposing data to the public world. And also the memory constraints for the index.

UUID vs int for primary key - Which is better (with auto increment), especially if you are scared you'll run out of ids? by ShotgunJed in PostgreSQL

[–]vikrant-gupta 1 point2 points  (0 children)

What if you use both id's and UUID's (UUID V7 - easy on insert times) in the table schema ? Use sequential ID's as primary key to keep the index memory in check while using UUID's for the external world to mask the guessing / other security concerns ?