From the blog

How is AI/ML changing DevOps?

The last few years have seen an explosion in artificial intelligence, machine learning, and other types of projects. Companies like Hugging Face and applications like DALL-E 2 have brought to the mainstream what the power of AI/ML can bring to the next generation of computing and software. As every company has become a software company over the last few decades, the ability to innovate and leverage the ever-growing amount of data that organizations have access to have become where enterprises turn to compete. However, a lot of AI/ML projects get stalled from several challenges that may seem familiar to software professionals who have been around since the early days of DevOps.  Adoption and optimization of artificial intelligence and machine learning have been hampered by a lack of repeatability for experiments, a disparity of tools and information silos, and a lack of team collaboration. A new model for data modeling One of the first ways to look at this problem is to make sure that the mental model is in place to allow the team to reason about both the strategic vision for AI/ML at your organization. And once that has been established, also think about the tactical “jobs to be done” to lay the foundation for that work. Strategically, there are many teams that have to come together for a successful AI/ML program. First, the data has to both be acquired and transformed into a usable set of clean data. Often referred to as “DataOps” this involves the typical “ETL” or extract, load, transform processes data has to go through to be useful for teams. From there, you have to productionize the data workloads through MLOps – the experimentation, training, testing, and deployment of meaningful models based on the extracted and transformed data. And once those two steps are complete, you can finally understand how to make production use cases for your data. You can use AI Assisted features to focus on improving user experiences, for financial forecasting, or for general trends and analysis of various parts of your business. Given the complexity of this value chain, the various teams and skills involved, and the current mishmash of tooling, there is a lot that teams can learn from the history of DevOps as they tackle these problems. DevOps and AI/ML Much like the various stages of obtaining and applying AI/ML for business uses, software development consists of many varied steps with different teams and skills sets to achieve the business goals outlined. That is why years ago, folks came up with this concept of “DevOps”– combining teams and having them work together in a cycle of continuous improvement towards the same goals – to combat silos and inefficiencies. Data science teams are using specialized tools that don’t integrate with the existing software development lifecycle tools they already use. This causes teams to work in silos, creating handoff friction and resulting in finger-pointing and lack of predictability. Businesses and software teams often fail to take advantage of data, and it takes months for models to get into production by which time they may be out of date or behind competitors.  Security and data ethics are frequently treated as an afterthought. This creates risk for organizations and slows innovation. Learning from the past If the past decades of “DevOps” evolution have taught […]

Read More

Cum RAD Studio Enterprise Edition vă ajută să creați aplicații mai bune

Dacă utilizați în prezent ediția Professional a Delphi, C++Builder sau RAD Studio, aveți o oportunitate unică de a beneficia de promoția actuală pentru edițiile Enterprise și Architect . Până la sfârșitul lunii august, cu o achiziție sau o actualizare RAD Studio Enterprise sau Architect Edition, obțineți și UltraEdit , un editor de texte premium, cunoscut pentru gestionarea sa facilă a fișierelor foarte mari de 4GB+ și o licență  InterBase Server de până la 50 de utilizatori . Vezi oferta promoțională aici . Pentru a explora caracteristicile UltraEdit și InterBase Server și valoarea pe care acestea o pot adăuga afacerii dvs., citiți această postare de blog . În regulă, spuneți, „ dar pe lângă instrumentele și licențele suplimentare, ce pot obține și care nu vine cu ediția Professional? Ce face ca upgrade-ul la Enterprise să merite investiția? ” În aceast articol vom încerca să răspundem la această întrebare. Vom analiza caracteristicile care diferențiază RAD Studio Enterprise Edition de Professional, beneficiile pe care le generează pentru dvs., dezvoltatorul, și valoarea pe care o puteți oferi clienților dvs. printr-un software mai bun, cu funcționalități mai mari. Diferența majoră: Enterprise Edition este pentru conectivitate avansată la rețea și acces la date Ediția Enterprise a RAD Studio®, Delphi® și C++Builder® adaugă mai multe îmbunătățiri și biblioteci ediției Professional. Aceste îmbunătățiri sunt concepute pentru a vă ajuta să creați aplicații cu conecțiuni sigure și să stocați în siguranță datele companiei pe dispozitive mobile. Pe scurt, Enterprise Edition este concepută pentru a dezvolta aplicații de tip client-server, care necesită colectarea și stocarea de la distanță a datelor în rețea. Cum RAD Studio®, Delphi® și C++Builder® Enterprise asigură conectivitate îmbunătățită. 1. Acces de mare viteză la distanță la baze de date cu FireDAC FireDAC este un data access layer care susține și simplifică accesul la date pentru aplicații de înaltă performanță. FireDAC oferă un API comun pentru accesarea unei game de back-end-uri de baze de date populare fără a afecta performanța aplicației . Ediția Enterprise a FireDAC adaugă conectivitate la nivel de rețea pe lână conexiunile de baze de date locale și încorporate. Migrarea de la Microsoft ADO la FireDAC este, de asemenea, foarte ușoară. Acesta este modul în care un dezvoltator și-a descris experiența cu FireDAC: „ Ne-am mutat la FireDAC de la ADO și am lansat produsul ca o actualizare majoră. Clienții sunt încântați, aplicația noastră a fost imediat mai rapidă, mai ușor de implementat și mai stabilă. ” 2. Multi-Tier Development Ediția Enterprise permite dezvoltarea aplicațiilor pe mai multe niveluri, oferind API-ul de nivel mediu pentru aplicațiile-client pentru a se conecta la sisteme și baze de date. Acest strat mijlociu creează un singur punct de acces pentru conectarea și gestionarea acestor sisteme și baze de date și un spațiu pentru ca logica de afaceri să existe independent. Aceste straturi separate reduc semnificativ complexitatea asociată cu dezvoltarea aplicațiilor la nivel de întreprindere, cu echilibrarea încărcăturii, mișcarea REST a datelor către nivelul client și ușurința de scalare. Opțiunile cu mai multe niveluri din RAD Studio®, Delphi® și C++Builder® sunt DataSnap, RAD Server și WebServer. Spre deosebire de DataSnap, RAD Server vine cu notificări push, stocare JSON securizată încorporată, gestionarea controlului accesului utilizatorilor/grupurilor, suport multi-tenancy și analiză API (vezi imaginea de mai jos). 3. Vizează Linux Cu ajutorul Delphi puteți desfășura aplicațiile și pe serverele Linux cu un cod partajat, care se compilează și pentru Windows. Rezultatul este viteză superioară și performanță generală, dezvoltare simplificată și flexibilitate extraordinară pentru dezvoltatori și utilizatorii software-ului lor. RTL (Run-Time Libraries) de la RAD Studio […]

Read More

Ce puteți obține cu Delphi, C++Builder și RAD Studio Enterprise and Architect doar în luna August!

Acum puteți face mult mai multe cu noi instrumente și licențe RAD Studio. Pentru luna august 2022, cu fiecare licență Enterprise sau Architect a Delphi, C++Builder sau RAD Studio, veți primi, de asemenea, o licență  UltraEdit și licențe InterBase Server pentru până la 50 (!) utilizatori prin promoția RAD Studio UltraEdit. De fapt, Architect Edition vine acum cu UltraEdit All-Access , care este o colecție incredibilă de instrumente de gestionare a fișierelor, care vă poate crește mult productivitatea.  Ce este UltraEdit și ce pot face licențele InterBase Server pentru afacerea dvs. prin promoția RAD Studio UltraEdit? Să le privim mai detaliat. Faceți cunoștință cu Ultra Edit Cu peste patru milioane de utilizatori din întreaga lume, UltraEdit este un editor de text, cod și hexadecimal pe disc premiat pentru Windows, Mac și Linux. Poate edita HTML, PHP, JavaScript, Perl, C/C++, Python și, practic, orice alt limbaj de programare. Dezvoltatorii RAD Studio includ Ultra Edit în centura lor de instrumente de dezvoltare pentru a simplifica lucrul pe parcursul ciclului de viață al dezvoltării și pentru a scurta timpul de lansare pe piață. Un utilizator numește UltraEdit „ Bugatti al editorilor de text într-o lume inundată de Ford și Dacia. Face totul bine și face multe din toate. Există dezvoltatori care înghesuie cât mai multe funcții în software-ul lor și ajung să obțină rezultate pe jumătate (și greșite). UltraEdit este bogat în funcții și totul este bine făcut ”. Cunoscut pentru gestionarea rapidă și corectă a fișierelor foarte mari. Gestionarea fișierelor UltraEdit este concepută pentru a împiedica utilizarea întregii memorie disponibile, ceea ce ar opri rularea altor aplicații. Aceasta înseamnă că UltaEdit nu are o limită reală în ceea ce privește dimensiunea fișierului – și poate deschide, edita și salva cu ușurință fișiere text mari de peste 4 GB! UltraEdit acceptă gestionarea fișierelor pe 64 de biți atât pe platformele Windows pe 32 de biți, cât și pe 64 de biți (Windows 7 și versiuni ulterioare). Iată ce are de spus CNET/Download.com despre UltraEdit: „Cu aspectul său clar și caracteristicile puternice pentru proiect și spațiu de lucru, poate gestiona proiecte complexe și sofisticate de dezvoltare de software. Dar, în ciuda gamei sale vaste de funcții, UltraEdit nu se simte niciodată copleșitor. Este flexibil și ușor de personalizat, iar interfața de utilizator rafinată oferă acces ușor la cele mai importante opțiuni…” Caracteristici remarcabile Putere, performanță, viteza de pornire și încărcare de fișiere de neegalat Teme personalizabile, configurabile, frumoase Integrarea sistemului de operare (linie de comandă, extensie shell) Căutare / înlocuire și căutare rapidă în fișiere / înlocuire în fișiere Comparare fișier complet integrată. Operații de diferențiere instantanee Browser nativ FTP/SFTP, consolă SSH/telnet Un tip puternic de fișier / selecție Gestionarea fișierelor mari demnă de un lider pe piață: peste 10 GB și mai mult Editare hexagonală. Editare coloană / blocare Suport special XML și JSON. Analizați și reformatați rapid XML/JSON UltraEdit Standard include UltraCompare Professional GRATUIT! UltraEdit include UltraCompare Professional. UC Pro oferă compararea și îmbinarea fișierelor în 2 și 3 căi, compararea și sincronizarea folderelor, compararea hex, compararea tabelului/Excel, sincronizarea locală/la distanță și integrarea Git. O licență UltraEdit personală poate fi instalată pe până la 3 mașini pe orice combinație de platforme. Architect Edition vine cu UltraEdit All-Access: Ce este All-Access? UltraEdit All-Access este o colecție de instrumente de gestionare a fișierelor. Pe lângă UltraEdit, colecția include: UE Studio : Integrare nativă a tuturor ramurilor dvs. Git. Clonează, verifică, actualizează, commit și push/pull, direct din UEStudio pentru a-ți gestiona depozitele Git UltraCompare : comparați 2 sau 3 fișiere din […]

Read More

How to access GitLab on a private network with Tailscale

GitLab provides an easy-to-install package for most Linux distributions and even for devices like the Raspberry Pi. However, if you want to install GitLab in a home lab or similar private network, you would then be faced with a new issue: how do you access the instance from outside that private network? Traditionally, you would set up your router to forward traffic from your public IP address to the server inside your network. However, this comes with several drawbacks: Opening a port on your home or private network comes with a sustainable amount of risk. It can be hard or impossible for folks to do depending on their internet service provider and what routing equipment they use. It can be especially tough if your ISP doesn’t provide you with a statically assigned IP address which means your address can change from time to time, and you’ll need to either update DNS manually or through some third-party dynamic DNS service. For me, all of these challenges have meant that I’ve only ever really run GitLab “for fun” on my local network. Given the challenges above, running a permanent installation wasn’t an option. That is until Tailscale entered my life. Tailscale Tailscale isn’t necessarily the “newest” technology. In fact, it is based on the WireGuard protocol, which has existed in one form or another since 2015 and has seen native kernel support added to various Linux distributions as well as the kernel itself over the past several years. Wireguard VPN technology makes considerable improvements in the usability and setup of virtual private networks over earlier protocols like IPsec. Even with being easier to use, the “problem” with WireGuard, at least for me, was always that it was still too complex to set up and maintain. Much like configuring my ISP’s router for port forwarding, it wasn’t impossible, but it just wasn’t practical. Enter Tailscale. Tailscale provides a simple piece of client software, available for Linux, Mac, and Windows (and iOS and Android!), which implements the WireGuard protocol and allows you to control your VPN network from a handy web interface. Not only that, it’s free to use for individuals and small networks. When I started using Tailscale, it was to make sure I could connect back to my home network and troubleshoot it while traveling for work. As the only system administrator in my house, this was fantastic. However, Tailscale also offers the ability to easily access services inside of various networks as well by setting up a mesh VPN between them, all with IP addresses in the 100.x.y.z range. That means for any web service or other service on my network, I can access it with a statically assigned IP address from any other device connected to Tailscale, and create a DNS record to have a domain point to the IP address. At last, I could run GitLab (and other open source tools) at home and safely connect to them from outside my house with as little hassle as possible. So how did I get it to work? Tailscale and GitLab together Assuming you already have a GitLab installation up and running on your network, getting it working through Tailscale involves a few steps: Installing Tailscale Setting up DNS for the private address Configuring HTTPS encryption Installing Tailscale Packages are available […]

Read More

Artist highlight: Jonathan van Immerzeel

When I was really getting my feet wet with 3D modeling, games like Rime and Breath of the Wild always managed to captivate my interest. Their abstracted art styles and use of color inspired a sense of adventure and exploration which really resonated with me. Non-photorealistic game art still sits at the core of what I strive for. More recently, Ubisoft’s open world games have set the bar for me in terms of scale and worldbuilding workflows. I can only imagine the amount of research and development that must go into vegetation alone. Over time, I started learning more about the natural world through reference materials, which drove me to see those places in person. This provided me ample opportunities to capture source materials and generally soak up inspiration. In a sense, observing and simplifying the intricacies of nature and translating them to a video game context sits at the heart of my job!

Read More

Animation Curves, the ultimate design lever

The row of spheres in the image above was created by positioning a sequence of Rigidbodies in a row and constraining their X and Z Freeze Position properties. An upward force was then applied using an Animation Curve based on the compression upward force, but with different curves for each sphere, positioned side-by-side for better visualization. You can use this technique to find the desired level of bounce for an object, or to tweak existing bounce to balance out characteristics. As a designer, being able to manipulate the characteristics of the upward force can help you create abstractions of more complex functions. Curves are a powerful XY chart data type, and though not technically perfect, they can help you prototype speedy damping solutions that can be visually edited in the Inspector and saved as presets at runtime. In this blog on the art of damping, Alexis Bacot highlights all the things that “depend on good damping. Camera, animation, movement, color gradients, UI transitions, and many many more… it’s used everywhere! Understanding damping is key to achieving great polish. Damping alone can make the difference between a bad or good experience.” In the same post, he demonstrates how Unity’s SmoothDamp can be used to create a beautiful ease in and out, and reacts to the target changing accurately. But it does not bounce like an “advanced spring damper that can oscillate, which is great for car suspension or fake ball physics” – an example of where Animation Curves provide a powerful advantage. Of course, curves have more uses than as an XY data type to manipulate gameplay. They can also be treated as an evaluation tool to capture data visually using AddKey via the Unity API. For evaluating a position over time, such as damping in the vehicle suspension example, or the falling spheres, use AddKey(elapsedTime, currentSpringCompression) in a method, and then call that method and pass captureResolution as the repeating rate via InvokeRepeating. A capture resolution of 0.1f means that, at every 0.1s, a key is added to the curve. View the mini result in the Inspector, or open the graph up to see the complete data.

Read More

How Kidoz and Unity are building a safer digital space for children

CE: What is the original story behind Kidoz? JW: Kidoz first started as a developer of apps and other software specifically for children under 13. Through that experience, we identified one of the biggest challenges for advertisers and publishers is reach and monetization within young audiences.  For example, we saw regulatory policies from Google and Apple tightening and becoming more stringent over time as they increased their privacy and security.  At this time, there was an opportunity to launch a proprietary ad network using our own custom built SDK and partner with app developers whose target audience is children.   CE: How do you work with publishers and advertisers? JW: We only use contextual targeting to identify unique segments within the thousands of apps we reach using the Kidoz SDK and through our direct supply partners.   We execute special campaign plans for our advertising partners to whom compliance with COPPA, GDPR, Google and Apple is business and brand critical. This commitment to compliance and performance has made Kidoz the number one kid-safe mobile network. Kidoz has a large network of sales and agency partners that represent the Kidoz inventory globally and just last year in 2021 we activated deals in 58 different countries.     CE: What kind of brands does Kidoz work with? JW: We work directly or through our sales partners with most of the global brands that advertise to children and families. These brands prioritize compliant child-safe media for their advertising and they know Kidoz can help them reach their audience at scale. In the toy industry, some of the brands we work with include Lego, Mattel, Hasbro, Playmobil, MGA, and Spinmaster. In entertainment, we work with Disney, Netflix, Universal, Paramount, Warner, Sony, Amazon Prime, Nickelodeon, and many more. These brands are global leaders and while they are the most active when it comes to child-directed media, they are also deeply committed to advertising compliance and therefore the Kidoz solution and our network partners must be completely compliant in technology and operations.   CE: What should publishers and advertisers be thinking about to stay compliant while increasing their revenue? JW: First and foremost, advertisers and publishers need to ensure they’re working with COPPA and GDPR compliant partners that stay aligned with the latest policies and keep their technology up to date. There’s no room for mistakes when it comes to advertising to child audiences as the penalties can be large for those that are noncompliant. As children are a significant percentage of all app traffic, there’s a growing trend amongst developers to operate apps with an age gate that segments users into COPPA, which is currently under 13 years of age, and also non-COPPA users that are 13 and above. With age gating, publishers can operate two separate monetization technologies which allows for the distinct treatment of both user segments. This approach can facilitate compliant monetization of both user segments.   CE: How do you see child advertising and COPPA evolving in the next decade? JW: The most important aspect of evolution over the last few years has been the tighter enforcement by the Federal Trade Commission (FTC) and the issuance of penalties for infringements. This has forced game publishers, brands, and the platforms themselves to adopt and enforce COPPA and GDPR compliance. Many other countries […]

Read More

How To Build A Windows App

Every day something close to a billion people worldwide use different Windows apps for one reason or another and knowing how to build a Windows app is a valuable skill. Think, for instance, how modern graphic designers use apps for photo editing, illustrations, designing vector graphics and a host of other uses. It’s almost impossible to imagine the millions of businesses around the world not using the many different apps and devices for collaboration, task management, communication, and more. Despite strong competition from Apple and the constant pressure from the Linux community, Windows still thoroughly dominates the desktop. Hence, there is a huge demand for windows app development. Once the preserve of a select few ‘computer geeks’, programming is now much more accessible with software design skills being taught widely to students from a broad range of backgrounds. This greater competition means developers need to find ways to build functional apps faster. But, how to build a windows app quickly with less coding? Using the best native app builder software! If you’re looking for the best native app builder, RAD Studio is what you need. RAD Studio is a powerful IDE (Integrated Development Environment) that offers all the features you need for quick app development. In this article, we’ll discuss how to build a windows app efficiently and quickly. We’ll also show you why RAD Studio is the best apps builder software. What is app builder software and how can we use it to build a Windows app? App builder software provides an easy and efficient way to build apps. The purpose of these tools is to simplify the app development process and enhance the productivity of developers. Different developers use different types of app builders, depending on the development approach. For instance, usually, people with little knowledge of coding use no-code app builders or low-code app development platforms. These platforms come with a drag-and-drop interface, allowing users to drag an icon onto the screen quickly. However, if you want a complete development platform that gives you a comprehensive set of tools required for writing and testing code efficiently, IDEs are best for you. IDEs typically consist of a code editor or text editor, a compiler, and a debugger. The code editor is where developers write and edit the source code. The compiler then translates this code into another programming language that a computer can understand. The debugger is helpful in testing the software. Some efficient IDEs like RAD Studio also offer additional features, such as auto code completion, allowing developers to find references to other resources, comment on lines of code, and many more. Why should you use application builder software? If you’re a developer wondering how to build a windows app faster, an efficient app builder is what you need. App builder software for PC offers several benefits: Speeds up time to market App builders and IDEs help businesses bring their products to market faster. The efficient GUI makes it easy to create an application quickly. Collaboration Efficient app builders like RAD Studio offer collaboration features allowing you to work with your team members on an app. Better Code Quality Developers and engineers test codes to eliminate defects and improve software quality. With a powerful app builder like RAD Studio, you can test your code at any time […]

Read More

TMS Web Core and More with Andrew: Miletus Desktop Intro

Motivation If we’ve got an excellent web application development tool, why do we need desktop applications at all?  It’s a good question.  And the answer, quite often, is that we don’t.  This is what has made the web such an important platform, after all.  And also what makes products like Chrome notebooks as popular as they are.  You can accomplish quite a lot using just web applications, and for many people, it is now possible to get by exclusively with web applications alone.  Products like TMS WEB Core are making this easier all the time by being able to develop substantially better applications with access to more data and more systems than ever before.  And without question, web technologies have come quite a long way in a relatively short period of time.  However, there are still many situations that come up where the browser sandbox is too restrictive to accomplish certain tasks. And I’m sure we’re all well aware that the browser sandbox and its rules are in place for very good reasons.  So while web technologies will continue to evolve, there are some places it just isn’t going to be going anytime soon, and that’s where desktop apps come in.  Here are a few examples where a desktop application solution might win out over a web application solution. An application needs access to directly read and write to a local filesystem. Application data is not permitted to leave a location (IE, saving to ‘the cloud’ poses unacceptable security risks). An application needs access to hardware that does not have an equivalent (or performant enough) web interface. Access to the application needs to be more strictly controlled. Application changes need to be more strictly controlled (i.e., SOX, ISO9000-type stuff). Users work in an environment where web browsers aren’t well-supported. Users work in an environment where desktops are strictly locked down in terms of application access. An application needs access to OS-level functionality that a browser does not have access to. Desire to standardize the application interface (avoiding non-standard browser ‘chrome’ or plugins that might interfere). Granted, there are many kinds of complexity at work here, and no doubt there are just as many ways to address certain problems.  For example, a web application could be served up within a local network that has no external access at all, ensuring that data doesn’t leave that location.  And there’s even an evolving web standard for accessing serial ports.  Crazy, really.  But in any event, there may be solid reasons for having a desktop version of a web application (or even a mobile version beyond what can be accomplished with a PWA-compliant application).  Whatever the rationale, Miletus is here to help address it. Getting Started For our example application, we’re just going to carry on with the Leaflet example that we covered a couple of days ago, an almost minimalist interactive mapping web application.  It has been updated slightly to fix a few minor internal errors, to be more ‘responsive’ and resize to fit its container, and also to have a slightly improved geofence data entry interface, where you can cancel the entry, see the points as a polyline while you’re entering them, change the color of the geofence created, as well as delete geofences.  To get this all working, we start by creating a new TMS […]

Read More

How we improved on-call life by reducing pager noise

To monitor the health of GitLab.com we use multiple SLIs for each service. We then page the on-call when one of these SLIs is not meeting our internal SLOs and burning through the error budget with the hopes of fixing the problem before too many of our users even notice. All of our services SLIs and SLOs are defined using jsonnet in what we call the metrics-catalog where we specify a service and its SLIs/SLOs. For example, the web-pages service has an apdex SLO of 99.5% and multiple SLIs such as loadbalancer, go server, and time to write HTTP headers. Having these in code we can automatically generate Prometheus recording rules and alerting rules following multiple burn rate alerts. Every time we start burning through our 30-day error budget for an SLI too fast we page the SRE on-call to investigate and solve the problem. This setup has been working well for us for over two years now, but one big pain point remained when there was a service-wide degradation. The SRE on-call was getting paged for every SLI associated with a service or its downstream dependencies, meaning they can get up to 10 pages per service since the service has 3-5 SLIs on average and we also have regional and canary SLIs. This gets very distracting, it’s stress-inducing, and it also doesn’t let the on-call focus on solving the problem but just acknowledges pages. For example below we can see the on-call getting paged 11 times in 5 minutes for the same service. What is even worse is when we have a site-wide outage, where the on-call can end up getting 50+ pages because all services are in a degraded state. It was a big problem for the quality of life for the on-call and we needed to fix this. We started doing some research on how to best solve this problem and opened an issue to document all possible solutions. After some time we decided to go with grouping alerts by service and introducing service dependencies for alerting/paging. Group alerts by service The smallest and most effective iteration was to group the alerts by the service. Taking the previous example where the web-pages service paged the on-call 11 times, it should have only paged the on-call once, and shown which SLIs were affected. We use Alertmanager for all our alerting logic, and this already had a feature called grouping so we could group alerts by labels. This is what an alert looks like in our Prometheus setup: ALERTS{aggregation=”regional_component”, alert_class=”slo_violation”, alert_type=”symptom”, alertname=”WebPagesServiceServerApdexSLOViolationRegional”, alertstate=”firing”, component=”server”, env=”gprd”, environment=”gprd”, feature_category=”pages”, monitor=”global”, pager=”pagerduty”, region=”us-east1-d”, rules_domain=”general”, severity=”s2″, sli_type=”apdex”, slo_alert=”yes”, stage=”main”, tier=”sv”, type=”web-pages”, user_impacting=”yes”, window=”1h”} All alerts have the type label attached to them to specify which service they belong to. We can use this label and the env label to group all the production alerts that are firing for the web-pages service. We also had to update our Pagerduty and Slack templates to show the right information. Before we only showed the alert title and description but this had to change since we are now alerting by service rather than by 1 specific SLO. You can see the changes at runbooks!4684. This was already a big win! The on-call now gets a page saying “service web-pages” and then the list of SLIs that are […]

Read More