• r00ty@kbin.life
      link
      fedilink
      arrow-up
      2
      ·
      16 days ago

      Wait, how do they get that data remotely? I was looking at my instance vs world and I saw there’s like the +1 hour from a week or so ago when I upgraded to latest mbin lol.

      I guess they’re looking at common activities and when they appear on each?

      • Nothing4You@programming.dev
        link
        fedilink
        English
        arrow-up
        8
        ·
        16 days ago

        lemmy has a public api that shows the federation queue state for all linked instances.

        it provides the internal numeric id of the last activity that was successfully sent to an instance, as well as the timestamp of the activity that was sent, and also when it was sent. it also includes data like how many times sending was unsuccessful since the last successful send. each instance only knows about its own outbound federation, but you can just collect this information from both sides to get the full picture.

        there is also https://phiresky.github.io/lemmy-federation-state/site to look at the details provided by a specific instance.

        • seang96@spgrn.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          16 days ago

          This is a nice tool though using it I think triggered my IP to be flagged with Cloudflare when I was trying to fix an issue with my instance and lemmy.ml.

        • r00ty@kbin.life
          link
          fedilink
          arrow-up
          1
          ·
          16 days ago

          That makes sense. So it’s showing me world’s federation with me and not the other way (since I’m not sure such info is available on mbin)

          • Nothing4You@programming.dev
            link
            fedilink
            English
            arrow-up
            3
            arrow-down
            1
            ·
            16 days ago

            pretty much, yeah. lemmy has a persistent federation queue instead of fire and forget requests when activities get generated. this means activities can be retried if they fail. this allows for (theoretically) lossless federation even if an instance is down for maintenance or other reasons. if mbin has a similar system maybe they could expose that as well, but unless the system is fairly similar in the way it represents this data it will be challenging to integrate it in a view like this without having to create dedicated mbin dashboard.

            • r00ty@kbin.life
              link
              fedilink
              arrow-up
              2
              ·
              16 days ago

              We can see it ourselves. We use rabbitmq for incoming (and maybe outgoing, it’s been a while since I looked at how it is) federation. So, you can see the queues there. For incoming (from rabbitmq) and outgoing there are also queues (symfony messenger) and these handle failures and can be configured and can be queried.

              After the upgrade I just took the default configuration again (because it seems queue names changed). But I used to have various rules setup in rabbitmq for retries and it took a fair few tries before the messages ended up in the proper “failed” queue (which needs manual action to retry). Some items you eventually need to clear (instances that just shutdown, or instances that lost their domain for example). They will never complete.

              But it’s not exposed in any way to my knowledge. Well unless people have their rabbitmq web interface open and without login of course.