 Hello, my name is Kristen Facuette, This presentation is called adopting 10-oz graduating across all of Las Post infrastructures. You can see the agent of this presentation, on this slide, first there will be a short introduction of me and the company I project and working at. Then I'm going to work it through our situation and the problems that led into introducing 10-oz, to our text stack, Then we will discuss the planning and preparation phase, és elérveztem a felszállal, és megyeketek egyetek a felszállal, és egyetek egyetek a felszállal, és egyetek egyetek a felszállal. Én Christian Fekete és a helyére vagyok a Logmain, a helyére, a képviselődőségek, a VSD-t, a Wobstay-t, a képviselődőségek, és a képviselődőségek, és a képviselődőségek, és a képviselődőségek. Ezek egy renewable addit, tiltoe nincsenek és a képviselődődeedingnek ez emeltannieves, szíves, ha beledertem, opnunk egy összállalkanok nyriezni, amelyek ez a unrealizámentet a renüzameig olamon Surf upbringing, közvetlenül a tracodást. És ezt istánom, hogy being able to craft queries, reaching from Kubernetes clusters to on-prem metrics, and we wanted to have a long-term storage. So how did we solve all this, we solved it with Thanos, but this is now the end of the presentation, because it wasn't this easy. Let's take a look at our preparation phase next. Most hittük a színzből és a barátaire bocsákortléset. A fokhagymát washing is. Amikor a szállíteni az életenséges, és a sz Indonesian-i és a lozzámonjátok, és meg kell magasztaitok a színzből. Nézd, akik a fokhagymát a györntésben is tetszettük, és az is a fő zségi hangubal diagnéztet is csinálunk. Akkor a félőségeet a félőségeet tetszettük. Egy igazított az alapjával, az ellenére és a különből az első szétot, különbözésen, későséges, köszönséges, kerületes és aki felsői-t, és ők egy miatt esetemekk. Egy különbözés ennek a Szeretős vizetés is játszunk a felsőséget, és eddig a jövényfejei előttek. Köszönönöm be a zöldöjlődéseket, és ezért az összegy LORD-kép. De ha egyébként főINGINGus támokúá elejében arrégy szeretnévelbé odállás Nosistériről is jegy jelünk, az államúgy ez egy személyes személyes, és amúgy az államúgy és az államúgy hogy a végzőzni az államúgy értem, hogy a főválások is megyünk. Aztán két olyan személyes sifetek, és olyan személyes személyes, aki megöltött nem a nekem, és a szerepárt dolgozott a volna vizetekkel. Aztán ez jössz a kezedben a Project to Choose-ből, M3-ben, Uber, Thanos, Cortex, Victória Metrix. kéne-kémentetek seedsz, és embernek még kéne a technolók, hogy a félelő és keződben tényleg hát alapvetően jönnek. Ha egyedül egy-kérdésben tetszik, akkor látunk ezek a sifetet, hogy megígérlek a végén, amíg a leg εgyére telejált beletett. Tehát a barátokat nagyon fogja menni a kis évtudna, hogy a kivágyi penegyeztetek, a kifágyi rárflex és a kerületes rárkége de k lowrkásseket organizations travels erőre tudja érni, és a kifágyi a szertékben olyan ázivalatot. De tudom ez nem tetszett, hogy ez az embereket is kérdezünk, hogy pár masksége gondolgáratok és alapján dolgozunk. A színleszégeg kéhem is näzik egy kis értés ennek. M3-et nem mindent máskodik az adott nyelkező elfogáztások. De ezt ezt nem maradjunk. A vízkerének máshogy keresni, hogy ugyan jobb, composite, after assembly search turned out it's not a fully compliant against primitive remove-rides specifications And there's a few post-listed in the future, please dive into those, if you are considering adding Victorian matrix into your primitive ecosystem. A kors-teks volt, kors-teks szerintem szépen szép, de ez egy kicsit kérlek. Ez a kors-teks-t is más főzésre, és ez a kors-teks-t is más főzésre, mit nem kérlek a főzésre, de ez most az egyetlen főzésre. A kors-teks-t is más főzésre. Egy kérdés, és ezért kérdéseztem, csináljuk, hogy a fél szolútól van kérem a promitív szegezőkosztány. A Felen-Ternos-tános-tános-tános-tános az új egyetős-kacsi. A másik komponentet is megy, hogy a kis félhúz, hogy előtt egy szizmát, hogy most két egyetős-tános-tános-tános-tános-táton, amely jöjjük a mögött egyik szilvét. és ráot quellett egy megszíves közés, és a coklatok lyhanyak kockáiból is mellett a tegének. Csak szült a technológia, megértünk contentet beginni a bibetált. És szerettem a festivali, ezért ugyebbetd el egy építeneg eléggéval, hogy hagydunk ezt a TANOS zépen. Ezért hosszunk a TANOS kbarnatis kluster, és ez a kb. Kosztal voltak, amikor Srod dolgozunk a externally네ged discovery glass clot okozna darából. Az egyeket development elafikyozTom vagyok, például, amiben a királyot találhatunk a kis szemmény hellc scrapok, aki el nap építsett egymás volt. Talán ötött, hogy TaoTaner니ùng ennek kisatelЖbözőt is oggi eσε auchács strangers pickup tört利 Chilezsli és a legnehető megintnek, és szükségezettem ezek a ételére is megöltünk. Na egész, mindenki voltak a főzőzőség és a főzőség, és a főzőség, a szélődéseket azért a főzőség, azért azért a legnagyobb, és azért a főzőség, hogy olyan szükségeztetik a főzőség. Right now we will go through the actual implementation phase and issues that we faced during that session. We had this first question should use this deal that sheet, subscribe button. We had this first question should we use this deal that we are intermittently issued easily users with almost 2 years of operational experience so we could list the pros and cons as I mentioned we understand we are fairly advanced users and Egy-ebb a játékot, hogy azompát az temp fortunekkel hívunk, hát gondolják, hogy egy zengsőnek lehívjuk, mindenki srácok is kurva van azért, tehát mi előtt angolokat félhagyta, azok egy kis ізatok a lefújásra, és hát ez a különben és a félhagyta legalább van ellenébb. Az új szépen csinálhatunk, hogy megyek egy obi ügyen szimben, és ez nem nagyon gondolják, mert, hogy ha jöjjük az ingressz gátváját, az ingressz, a más és a tanos-t, ha jöjjük ezt az MTS-t, hogy ESTO-t jöjjük, de a ESTO-t is jöjjük egy másik lényeg, mert a kicsit, a kicsit, és jöjjük ezt, és jöjjük ezt, hogy A tánálási különbözőségek is szembelejtünk, de azok a főzőre, és a bármilyen a tánálási különbözőségek is lehet. Azt hiszen a helyzetet, a metra, a metra, a tánálási különbözőségek is lehet. De ha nem láttad a tánálási különbözőségek, akkor lehetne a tánálási különbözőségek. És érdemes danesosan az STU széphez l udként a lényegét az együttetőradt az együttes nemára. Akkor mondjuk, ha STU és az újságban pár sára, tetszették és az újságból bújtuk az összeállal, hogy tudnod, hogy ez nem dolgozok, mert együttes vannak biztosz együttes állákkal. Még nekik a beszélnök, hogy a TANOS nem kihálda. Ha a TANOS lehet, hogy néhány saját képességezt. A diszi Copicuáról is, hogy a TANOS-képességezőségezőből képességezted, akik a TANOS-képességezőjt képességezted, megyek egy különböző különböző kérdés, ezt előtt képességező cikkörőt. A tanos autókállal nekik a képességezőt, hogy a tannakokokra meg akartó a módtán azok az autókállal. A tableti sztor állt is megüldjük. Megöltem a sztoroknak, hogy sztorok a tabletit. Akkor találkozik a autóval, hogy a tános égényectisztemet téged tudtak találkozni, ma szerepetet a és a tános szerepetre kiterítik. Egy érredő olajkarmájuk, őket észre tæmződés vivetetekhetünk az esc τονulsz kezétel, és a Thanos-törényével kérdett a kérdésével és kérdésével a Thanos-törényével. És a Thanos-kompaktor-tételményeket is tudunk képzelni, azért nem kell, de ha a long-term storage-tényével személyeket is képzelni, hogy a képzelőtetelményeket is képzelni. A mitegak a tánosz estuv 내volymát puhára is találhatunk el az egyibb h紅óképe a tánosz tanáróképe-t, felképp lehet egy újra értelmétek a kibutuláságon, hogy a szettőképei a tánóznek lehet tánulszolni a különbözői és a tánoszban. Néhább, hogy a tánosz és a tánoszbára egy szettőképei van eválgálni az órioshága, a betegyszerű kon cantos, de a belüttetősége a különböltedenceből inheritetősége azon, amire a különböltedenceből üldön. Hát, a különböltedве az ötlésésebb képs관 másik otthon! A betegyszerű kon circuit-téseből különbölted, a helyező standardában a bíthnemi tanosra. A nevéleséget egy dispute, amit tűnöm a megkazli , és úgy elrubni, hogy kérdünk a különséget, amire a legjobb különsége olyan különség Wilman, hogy oldalonokra lehúznak a különségek, mint egy nagyobb különségek, de kéremel kérdésem ahogy ez egy különségek, mint egy különségek, és ha szerintem a holdát a különségek is van egy a különségek és ha ez egy különségek, Ez a légyára nem tudták bírni. Egy kis oda a tánosítását,кoramyztát is válnák azokat. A volga az abban lehet. Ja, hogy helyezik, azokről például a fokhagyba. Remélik a siteset, majd a képességekm, Prometivus instanszégek, és a TAS-kvárhagymát kanálkozik a long-term storage-data a stock-hagymát. A segítségek a v-klasztár, amikor a v-klasztár jelenti, de amikor játszottam, hittem egy kérdése. Ha arrát helyezünk, azért ᜜�エ�識ᜐᓍᓓᓒᓏ ᐌᐒᓓᓕᓍᓒᓔᓒᓎᓯᓓ ᐒᓰᓛᓑᓐᓏᓓᓔᓔ ᐛᓼᓑᓑᓼ. Ha намalíta a cownosznikain nem petézett a leszom, Őt is kulördítani a helyet- készült reparáltak, és permettek a kompakton 있다, és lehet egyáltalán kívülni, hogy nem lehet egyáltalán kívülni, mert ez nem lehet egyáltalán kívülni. A különségek az újra, hogy a szovájátok és a szovájátok is színtek a félre, hogy a félre vagyunk. A dítanoszmiket kérdünk, hogy a különségek az utolások, ezek az utolások és az utolások, és a különségek az utolások és az utolások, a különböző kitől, a különböző kitől, és itt tilágítingen is használottuk a különbözölt következő helyt, és olyanbb a különböző kitől is, amit mennünk a különböző kitől is. A koncekense kapcsolatások is hívunk, hogy úgy tubazik a hátszó ülelőre. A legjobb a nagyos volt ördögő kanáltások, hogy nevet tempéletet élvezetek a különböző kitől, Aztán a Z-telésből magasztott, amit kérdettetett a kéremekben a különséges készíteni. Aztán a Z-telésből kérdett, hogy megyek egy helyen a különséges készíteni. Aztán a különséges készíteni, hogy a különséges készíteni. Ez egy különséges készíteni a különséges készíteni. Itanos képzéslesen törül ki, amelynek történik képzésnek és mengetegszernek. De az igazság az náma nyilván eléggel timmeljük a képzésnek B jotás. De az igazság az eddig,待って ez a képzésnek a főle képzésnek, jelezem az utána az előtletiztelére. The first one is a common solution, but you must individually expose all tonos sidecars to access all store APIs. Therefore you cannot put a single load balancer in front of them, you have to use separate ones for all sidecars. With the second option you have a tonos query instance that is discovering and connecting to sidecars in the local cluster, in the Observe cluster. The benefit of this approach is that you can expose only this query and have it queried from the Observe cluster's query. It sounds complicated, but the next slide will simplify it with an illustration. Or you can use receive, I will talk about this component later. Using this approach you are basically pushing from the Observe cluster to the Observe's receive component. It has benefits downsides, we will talk about this. So let's take a closer look at the second option. You can see a simplified implementation of stacking. So you have tonos components deployed in the Observe cluster. This is something that you might not be prepared when you begin this journey. But actually it's much simpler exposing the Observe cluster this way. Because as I mentioned you only need to expose the query and the Observe query will have the tonos sidecars discovered locally. So you can save some infrastructure codes and complexity. But we had another issue at this point. We wanted to use different certificates cross cluster and in cluster. It's a common use case, you might not want to use the same certificates between clusters that you would use inside the cluster. Inside the cluster you might want to just use Samsung certificates or no certificates at all. But currently there's a limitation and it's not possible. You can read about these limitations in the links in the footer. But fortunately this can be worked around with more stacking. There's a blog post linked on this slide. You can find additional details, technical details on the Perce or TLS limitation. But I will highlight the details here. Basically you can add a tonos query that will have the integration with all your tonos stack. You can integrate the compactor, the stores, the storage gateways to this centralized query and use that as a central piece. And for Observe cluster integration, where you might want to use different production ready air certificates, you can deploy another query instance. This is called Remote TLS query in this example. And you can stack these together. This way you can use different certificates because this limitation is only relevant for query components. So in each query you can use a different certificate. So at this point we have metamonitoring in the Observer cluster. It's highly available. We have integration with the Observer cluster. So highly available. And we have metrics in an S3 bucket for both of these. At this point the next step is to have proof of concept for tonos receive. To test the on-premise integration out. We decided to deploy it in the development infrastructure first. And after the test just leave it there to have environment parity. So if you need to find you in any configuration or performance test, the receive component, we can do this without affecting production workloads. Why we choose receive? Because as I mentioned we are before cloud migration. We wanted to have a simple solution for these somewhat temporary on-premise clusters. As I mentioned those workloads are not running in containers. So these are managed by Puppet. And migrating to those primitive solutions to Puppet managed tonos solutions is a bit tedious. And that's no real benefit of making that migration. If we are soon moving into the cloud. And those are also not highly available instances. So if we lose any of those during the migration. Then that data center will not have monitoring until the issue is fixed. On the other hand with receive we can just add remote flight configurations. And the metrics will be shift to our central cluster. And this is a much lower risk. And receive is seem to be a reliable solution. As you can specify replication factor. And it also has a local TSDB under the hood. The same as Prometheus. How receive works? Basically the on-premise data centers are sending remote flight requests. These are handled by the tonos receive component. The remote flight requests are stored locally in the TSDB. As the one that the Prometheus instances are using. Tonos receive exposesing story API for real time queries. So it's a queryable in real time. And it's uploading these blocks in every two hours to the object store. So we have long term retention as well. We had to perform student size the production and the development receive components. On the client side you have to fine tune the remote flight parameters. The max samples per send can be too low by default. It's sent to 100. This can be increased to avoid two frequent requests. It turned out that 1.000, 5.000 is much better for our use case. But I would recommend to use remote flight. And also receive metrics and dashboards to find the optimal settings for your use case. Also max shards should be lower to appropriate value. When you are increasing the default max samples per send. Which is basically bad size. And we experiment that having a higher cardinality tenant might need higher max samples per send to avoid flight failures on the receive component. There are some links on the footer. Please check those out before you are actually introducing a production receive instance. On the receiver side you have the receive component. You will need to estimate the storage needed to store all your metrics. After some research the researchers linked in the footer again. We came up with this promqr query. Where you can give the query the retention, the ingested samples per second. And the actual bytes per sample. Then you will have to modify this with additional 20% of overhead. Because of the retention and the compaction overhead. And add an additional 5% because of the variety catalog. And by executing this query on a tenant. You will get the estimated storage needed to store all your metrics for a given retention. At this point we have everything working in development environment. So we can move to production. The workflow is basically the same. You have to set up the observer and observer V clusters. Have the cloud formation templates updated with its roles. So you have the bucket and the IAM roles in place. Then you can add metamonitoring, move forward to cross cluster integration. Then to on-premise integration. Do not forget about the Thanos mixing charts to have monitoring and alerting for your monitoring. And this is the production setup. So you might want to migrate your existing grafana configurations. And your dashboards that might be needed to have some transformation. To have these new setup working well. You might need to add some additional labors to be able to specify the primitive instances that are ingesting data into the Thanos component. And we decided to expose this new grafana with the Thanos component behind it side by side. So we can compare these together and have a backup if anything grows wrong. Post-implementation happened the following way. First we had in-team usage. So we were comparing it to the former vanilla primitive setup during day-to-day work and during outages. And see whether anything was different or not working or broken, for example. Then we started to invite beta users, teams for the developers team to try out and gather some feedbacks. After that we were holding some knowledge sharing sessions about the changes that were affecting the developers, our customers. In this case, and during this we were continuously monitoring the performance of the production and the development instances. And we were fine-tuning configurations where it was needed. And of course we were also collecting feedbacks and implementing these. Some statistics results and some words about our future. At this point we have around 3 million head-series and we are ingesting almost 100 samples per second. And this will only grow as we will have the cloud migration started. So we will have some time before the extra migration to make this solution scalable. But the foundation is already there and it's working and we are enjoying the benefits. This is the final architecture. You can see how everything works together, both on-premise and on-cloud. You can see the protocols between each component. You can spend some time exploring this picture after the presentation, because there's a few components on this slide. And what's next? We are planning to extend our automatic graphical annotations that are marking releases and config changes on our graphical dashboards. With Thanos under our new grafana, we can have a dashboard that has all our infrastructure components. And if all of our releases are marked as graphical annotations, we can easily correlate releases to certain degradations or improvements. So that's a great thing to do and we are really looking forward to have this functionality. We have some AWS Manage Services. We are planning to migrate the cloud watch metrics to some kind of primitive cloud watch exporter to have the benefits of having Thanos. So that we can correlate these metrics with Kubernetes and on-premise metrics and have alerts for these and also long-term storage. And we are before cloud migration, so we are fine-tuning the configurations and optimizing performance to have it ready when the cloud migration works are starting. And we are already enjoying the more effective troubleshooting during on-course. This presentation will be available as a detailed blog post focusing on the technical details of the project. And you can find additional dive posts on Thanos under the Thanos tag on this website. Below that, there are all the external resources that are included in this presentation. So you can spend some time to explore those. Thank you for joining me in this presentation. You can reach me on these platforms and now it's time for some Q&A.