Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Jordi Masip
    @masipcat_gitlab
    Jordi Collell
    @jordic
    /all anyone on the guillotina sync?
    Nathan Van Gheem
    @vangheem
    ouch, I'm sorry, I had a meeting and didn't realize I was in conflict here
    did you all meet?
    Ramon Navarro Bosch
    @bloodbare
    Was Jordis and me
    Ferran Llamas
    @lferran
    hi guys!
    In 5.x we had this pointer to the server on the root application object that was used to inspect active connections.
    https://github.com/plone/guillotina/blob/5.x/guillotina/factory/app.py#L185
    Any idea how to do this in 6.x?
    Ferran Llamas
    @lferran
    I'm interested in knowing the active connections of the server
    Jordi Masip
    @masipcat_gitlab
    I'd say with an asgi middleware
    Jordi Masip
    @masipcat_gitlab

    Hi! I want to choose the pool_size of the db pool from my k8s yaml:

    I have the following name/value

    - name: G_databases__db__pool_size
    - value: "4"

    the problem is that guillotina doesn't convert the "4" to integer and asyncpg crashes with: TypeError '<=' not supported between instances of 'str' and 'int'

    I was thinking to convert the str to int here https://github.com/plone/guillotina/blob/4c814b60b774f94a39344514b6127fa1ad85963f/guillotina/db/factory.py#L64 but I'm asking to know if there is a better way / place to do it.

    Thank you!

    ps: k8s doesn't like a numeric value under env:

    Ramon Navarro Bosch
    @bloodbare
    I would feel ok with that aproach
    Jordi Masip
    @masipcat_gitlab
    :+1: I'll open the PR soon
    Nathan Van Gheem
    @vangheem

    how would everyone feel about simply adding prometheus directly to guillotina?

    I'd like to add metrics to our database layers and adding some kind of metrics utility in order for us to capture this seems a bit silly. Prometheus has very low overhead and most of us use it anyways. Thoughts?

    @all ^^
    Ramon Navarro Bosch
    @bloodbare
    As a contrib?
    Nathan Van Gheem
    @vangheem
    nah, we'd need to put metrics on specific things in the db and probably other caching layers
    no way could it be in contrib unless we added other generics
    Ramon Navarro Bosch
    @bloodbare
    At least should be possible to deactivate and not collect metrics
    Nathan Van Gheem
    @vangheem
    ok, I guess I just see minimal value in having it optional/configurable
    Ramon Navarro Bosch
    @bloodbare
    Yups
    Nathan Van Gheem
    @vangheem
    we okay with introducing prometheus and directly using it then?
    Jordi Masip
    @masipcat_gitlab
    Sounds good :)
    Ramon Navarro Bosch
    @bloodbare
    @all we open sourced two small guillotina packages we’ve been using just in case are interesting: https://pypi.org/project/guillotina-nats/ and https://pypi.org/project/guillotina-numpy/
    To connect guillotina to Nats or Nats streaming and to store numpy fields on guillotina objects
    Jordi Masip
    @masipcat_gitlab
    Nice! We also released this library two weeks ago: https://pypi.org/project/guillotina-localstorage/
    Ramon Navarro Bosch
    @bloodbare
    it remembers me a lot the blobstorage from zope/plone :) Really nice work Jordi !
    Jordi Masip
    @masipcat_gitlab
    thank you :)
    Nathan Van Gheem
    @vangheem
    @bloodbare @masipcat_gitlab if you are okay, I'll add to master as well: plone/guillotina#1005
    Ramon Navarro Bosch
    @bloodbare
    @vangheem is it conditional ?
    I see that prometheus package is not try catch
    Nathan Van Gheem
    @vangheem
    no, I thought we said it was not worth it to make it conditional
    "ok, I guess I just see minimal value in having it optional/configurable" -- your response, "Yups" :)
    Ramon Navarro Bosch
    @bloodbare
    missunderstanding sorry, I understood I see minimmal value ...
    Nathan Van Gheem
    @vangheem
    yah, my point, so low of value it's not worth it
    Ramon Navarro Bosch
    @bloodbare
    I don’t use prometheus on 70% of my G projects
    Nathan Van Gheem
    @vangheem
    conditional would introduce other knobs that increase complexity
    what do you use instead of prometheus?
    Ramon Navarro Bosch
    @bloodbare
    on that project we don’t need prometheus
    Nathan Van Gheem
    @vangheem
    is having it hurting anything/
    ?
    Ramon Navarro Bosch
    @bloodbare
    Sorry, I don’t understand you
    Nathan Van Gheem
    @vangheem
    even if you don't consume the metrics, it doesn't hurt to still have them does it?
    my point on this: sure, we can add indirection in order to conditionally have this but I just see very little value in adding indirection
    Ramon Navarro Bosch
    @bloodbare
    I see why u see little value in adding indirection, I don’t see the value of the PR by itself for my use cases, but if you don’t feel to have it conditional (like adding an app_settings check at https://github.com/plone/guillotina/pull/1005/files#diff-715c11a2e98bfb857700e76197df6278R34 and try except import) we can add later on
    Nathan Van Gheem
    @vangheem
    alright, changed to handle import errors
    Ramon Navarro Bosch
    @bloodbare
    thanks !
    Nathan Van Gheem
    @vangheem

    @/all there is preliminary evidence that the shared read connection is a problem. I have some preliminary examples on smaller test servers where we have p99s of 40ms just waiting to use that connection object.

    we'll have full metrics in production next week so we should have a more clear picture then with servers under more much load

    Jordi Collell
    @jordic
    @vangheem how it's going at production?
    Nathan Van Gheem
    @vangheem

    p50 shows little contention, ~300 microseconds

    p99 shows 1.5 second wait for shared connections

    so pretty bad and no reason little reason for this it seems to me.

    Jordi Masip
    @masipcat_gitlab
    interesting!
    Christophe de Vienne
    @cdevienne
    quit