CodeWorlds
Powrót do kolekcji
Przewodnik16 min czytaniaZespół CodeWorlds

Axiom, logi i zdarzenia bez próbkowania

Axiom przechowuje logi bez próbkowania i pyta po całej historii przez APL. Wersja 2.0.0 klienta, licencja MIT tylko na klientach, trzy liczniki w cenniku.

Axiom, logi i zdarzenia bez próbkowania

Axiom to zamknięta usługa do zbierania logów i zdarzeń, z własnym językiem zapytań APL i klientami JavaScript na licencji MIT. Aktualna wersja pakietu @axiomhq/js to 2.0.0 opublikowana 4 sierpnia 2026 roku, a przejście z jedynki zmienia domyślny kształt wyniku zapytania, więc nie jest to aktualizacja, którą robi się bez czytania.

Co Axiom robi, a czego nie robi

Punktem wyjścia jest założenie, że logi wysyłasz w całości, a nie w próbce. Zamiast decydować przy wysyłce, które zdarzenia zachować, wrzucasz wszystko do zbioru danych, a koszt spada na przechowywanie i na moc obliczeniową zużytą przy zapytaniach. Silnik nazywa się EventDB i jest kolumnowy, bezschematowy, czyli nowe pole w zdarzeniu nie wymaga wcześniejszej migracji.

Zapytania pisze się w APL, języku w stylu Kusto, z operatorami łączonymi pionową kreską. Dokumentacja mówi wprost o istotnym ograniczeniu: APL nie odpytuje metryk. Do metryk służy osobny język MPL, z osobnym adresem końcowym i osobnym typem wyniku w kliencie. Jeśli planujesz jeden język do wszystkiego, ten podział trzeba uwzględnić od początku.

Czego Axiom nie robi. Nie grupuje wyjątków w sprawy z przypisanym właścicielem, od tego jest Sentry. Nie liczy lejków rejestracji ani retencji użytkowników, czyli tego, czym zajmuje się PostHog. Nie rozkłada wywołania modelu językowego na kroki z kosztem tokenów, bo to zadanie dla Langfuse albo Helicone. Nie jest też bazą ogólnego przeznaczenia, którą podepniesz pod raportowanie finansowe, jak ClickHouse.

Licencja: MIT kończy się na kliencie

Sprawdziłem licencję z trzech stron i tym razem wszystkie trzy zgadzają się bez zastrzeżeń, przynajmniej dla bibliotek.

Po pierwsze repozytorium. Plik LICENSE w gałęzi głównej axiomhq/axiom-js zwraca kod 200 i ma dziewiętnaście linii z pełnym tekstem MIT, z nagłówkiem Copyright (c) 2021, Axiom, Inc.. Plik nie zaczyna się od linii MIT License, więc skanery, które szukają tytułu zamiast treści, mogą go opisać jako licencję nierozpoznaną. Pliku LICENSE.md w tym repozytorium nie ma, adres zwraca 404.

Po drugie rejestr. Pole license w rejestrze npm ma wartość MIT dla każdego sprawdzonego pakietu z przestrzeni @axiomhq, czyli dla js, logging, nextjs, react, pino, winston i tanstack-start.

Po trzecie zawartość opublikowanej paczki. W archiwum @axiomhq/js w wersji 2.0.0 leżą LICENSE, README.md, CHANGELOG.md, katalog src z kodem źródłowym w TypeScripcie oraz katalog dist o rozmiarze około 668 kilobajtów, z wariantami CommonJS i ESM plus mapy źródeł. To jest realny kod, a nie atrapa zajmująca nazwę. Paczka @axiomhq/logging w wersji 0.4.0 wygląda tak samo, dodatkowo z katalogiem test.

I teraz rzecz, którą trzeba powiedzieć wprost, bo licencja MIT na klientach potrafi uśpić czujność. MIT obejmuje wyłącznie biblioteki klienckie. Sam magazyn danych i silnik zapytań są zamknięte, a wariantu do uruchomienia u siebie nie ma w ogóle. Tabela porównania planów na stronie cennika wymienia jeden tryb wdrożenia, zarządzany, i nie ma tam wiersza dla instalacji własnej.

Konsekwencja jest poważniejsza niż przy większości usług. Dane logów to jedno z najgorszych miejsc na migrację: wolumen liczy się w terabajtach, format jest bezschematowy, a zapytania i pulpity napisane w APL nie przenoszą się nigdzie, bo APL nie jest standardem. Wyjście z Axiom oznacza przepisanie wszystkich zapytań, wszystkich alertów i wyprowadzenie historii, za którą zapłacisz mocą obliczeniową zapytań. Jeśli trzymasz tam dane na potrzeby audytu z rocznym oknem retencji, przywiązanie do dostawcy jest realnym ryzykiem biznesowym, a nie teoretycznym.

Wersje pakietów i skok do 2.0

Rodzina pakietów jest wydawana z jednego repozytorium narzędziem, które synchronizuje numery wydań partiami. Stan na 22 sierpnia 2026 roku wygląda tak.

PakietWersjaPublikacja w npmUwagi
@axiomhq/js2.0.02026-08-04jedna zależność, fetch-retry, engines.node co najmniej 20
@axiomhq/logging0.4.02026-08-04brak zależności produkcyjnych, peer @axiomhq/js w zakresie ^1.0.0
@axiomhq/nextjs0.4.02026-08-04peer next co najmniej 13, peer @axiomhq/logging dokładnie 0.4.0
@axiomhq/react0.4.02026-08-04zależy od web-vitals i use-deep-compare
@axiomhq/pino2.0.02026-08-04zależy od @axiomhq/js dokładnie 2.0.0
@axiomhq/winston2.0.02026-08-04zależy od @axiomhq/js dokładnie 2.0.0
@axiomhq/tanstack-start0.2.02026-06-29peer @axiomhq/logging dokładnie 0.3.0
@axiomhq/ai0.8.02025-08-04porzucony, następcą jest pakiet axiom

Trzy rozjazdy widać od razu. Pierwszy jest najpoważniejszy, bo dotyczy kombinacji, którą wybierze większość: @axiomhq/logging w wersji 0.4.0, wydanej tego samego dnia co dwójka rdzenia, deklaruje zależność równorzędną @axiomhq/js w zakresie ^1.0.0. Bieżący rdzeń ma numer 2.0.0, więc zakres go nie obejmuje i instalacja obu bieżących pakietów naraz zgłasza konflikt. Obejściem jest trzymanie rdzenia na linii pierwszej albo wyciszenie ostrzeżenia, co oznacza pracę na kombinacji, której dostawca nie zadeklarował jako obsługiwanej.

Drugi: @axiomhq/tanstack-start nie został podbity w sierpniowej partii i wciąż przypina @axiomhq/logging do dokładnej wersji 0.3.0. Jeśli w tym samym projekcie zainstalujesz @axiomhq/nextjs w wersji 0.4.0, dostaniesz konflikt zależności równorzędnych, bo obie deklaracje są sztywne, bez zakresu.

Trzeci rozjazd jest gorszy, bo cichy. Pakiet @axiomhq/ai zatrzymał się na wersji 0.8.0 z 4 sierpnia 2025 roku i wciąż ma znacznik latest, ale nie został oznaczony jako wycofany. Rozwój przeniósł się do pakietu o nazwie axiom, wersja 0.52.2 z 12 maja 2026 roku, wskazującego repozytorium axiomhq/ai w katalogu packages/ai. Sprawdziłem, czy to nie jest przejęta nazwa: opis, adres repozytorium i lista opiekunów zgadzają się z resztą pakietów Axiom. W archiwum tej paczki jest plik LICENSE.md z tekstem MIT i katalog dist o rozmiarze około 2 megabajtów, ale nie ma katalogu src. W repozytorium axiomhq/ai plik licencyjny nazywa się LICENSE.md, więc skaner szukający LICENSE zgłosi brak.

Sam skok do 2.0 ma dokładnie jedną zmianę łamiącą zgodność, wypisaną w dzienniku zmian: zapytania APL bez jawnie podanego formatu zwracają teraz wynik tabelaryczny. Wcześniej domyślny był format legacy z inną strukturą odpowiedzi. Migracja sprowadza się do decyzji, czy dopisujesz format: 'legacy' we wszystkich istniejących wywołaniach, czy przepisujesz kod odczytujący wynik. Poza tym doszła opcja fetch w ClientOptions, pozwalająca podstawić własną implementację, oraz obsługa odpowiedzi, które nie są JSON-em.

Warto prześledzić wcześniejsze wydania, bo część zmian dotyczy zachowania w locie. Wersja 1.6.0 z 30 marca 2026 roku włączyła kompresję gzip ładunków wysyłanych domyślnie. Wersja 1.6.1 z 6 maja 2026 roku poprawiła logikę pakowania zdarzeń w partie. Wersja 1.7.0 opublikowana 17 czerwca 2026 roku przeszła na API zbiorów danych w wersji drugiej, dodała obsługę metryk i MPL oraz operacje tylko do odczytu dla pulpitów, zapisanych zapytań i użytkowników. Wersja 1.8.0 z 29 czerwca 2026 roku dodała nagłówek X-Axiom-Client.

Uwaga na daty. Dziennik zmian datuje 1.7.0 na 9 czerwca, a 1.8.0 na 25 czerwca, podczas gdy publikacje w npm mają odpowiednio 17 i 29 czerwca. To normalna różnica między scaleniem a wydaniem, ale jeśli budujesz oś czasu z jednego źródła, dostaniesz inne liczby niż z drugiego. Osobna ciekawostka z rejestru: między publikacją 1.3.1 a 1.4.0 minęło ponad trzynaście miesięcy, od 16 grudnia 2024 do 27 stycznia 2026 roku.

Wszystkie bieżące pakiety wymagają Node w wersji co najmniej 20. Plik README pakietu do Next.js mówi to jednoznacznie: Node 18 nie jest już obsługiwany.

Jak to wygląda w kodzie

Instalacja zestawu dla aplikacji Next.js to jedno polecenie z README pakietu.

Code
Bash
npm install @axiomhq/js @axiomhq/logging @axiomhq/nextjs @axiomhq/react

Sam klient przyjmuje token jako jedyne pole obowiązkowe. Pole orgId jest potrzebne tylko przy tokenie osobistym, url wskazuje adres API dla operacji administracyjnych, a edge kieruje wysyłkę i zapytania na domenę brzegową.

Code
TypeScript
import { Axiom } from '@axiomhq/js'

const axiom = new Axiom({
  token: process.env.AXIOM_TOKEN!,
  orgId: process.env.AXIOM_ORG_ID,
  url: 'https://api.eu.axiom.co'
})

const status = await axiom.ingest('web-logs', [{ path: '/checkout', ms: 128 }], {
  timestampField: 'ts',
  timestampFormat: 'unix'
})

console.log(status.ingested, status.failed, status.processedBytes)

await axiom.flush()

Klasa Axiom pakuje zdarzenia w partie, więc w procesie krótkotrwałym, na przykład w funkcji bezserwerowej, flush jest obowiązkowy. Kto woli wysyłkę natychmiastową, sięga po eksportowaną obok klasę AxiomWithoutBatching. Zwracany IngestStatus ma pola ingested, failed, failures, processedBytes, blocksCreated i walLength.

Zapytanie w APL i miejsce, w którym gryzie zmiana z 2.0.

Code
TypeScript
const tabular = await axiom.query(`
  ['web-logs']
  | where ms > 500
  | summarize count() by bin_auto(_time), path
`, {
  startTime: '2026-08-01T00:00:00Z',
  endTime: '2026-08-22T00:00:00Z',
  noCache: true
})

const legacy = await axiom.query("['web-logs'] | count", { format: 'legacy' })

Bez pola format dostajesz TabularQueryResult. Z wartością 'legacy' dostajesz QueryResult w starym kształcie. Sygnatury są przeciążone, więc TypeScript pokaże różnicę od razu, ale kod w czystym JavaScripcie przestanie działać dopiero w czasie wykonania.

Logger jest osobnym pakietem i od wersji 0.4.0 potrafi walidować pola zdarzenia dowolnym walidatorem zgodnym ze Standard Schema.

Code
TypeScript
import { z } from 'zod'
import { Logger, ConsoleTransport, AxiomJSTransport } from '@axiomhq/logging'

const LogFieldsSchema = z.object({
  userId: z.string(),
  action: z.enum(['login', 'logout'])
}).strict()

export const logger = new Logger({
  transports: [
    new AxiomJSTransport({ axiom, dataset: process.env.AXIOM_DATASET!, logLevel: 'info' }),
    new ConsoleTransport({ prettyPrint: true })
  ],
  schema: LogFieldsSchema,
  onValidationError: (context) => {
    console.warn('Dropped invalid log', context.stage, context.reason, context.issues)
  }
})

logger.info('User action', { userId: '123', action: 'login' })

Zdarzenie, które nie przejdzie walidacji, zostaje odrzucone przed przekazaniem do transportu, więc onValidationError to jedyne miejsce, gdzie się o tym dowiesz. Metoda logger.raw omija walidację. Pole outputSchema sprawdza zdarzenie już po przejściu przez formatters.

Podpięcie do trasy w Next.js wygląda tak.

Code
TypeScript
import { createAxiomRouteHandler, nextJsFormatters } from '@axiomhq/nextjs'

export const withAxiom = createAxiomRouteHandler(logger)

export const GET = withAxiom(async () => {
  logger.info('Hello World!')
  return new Response('Hello World!')
})

Cennik: trzy liczniki i rachunek na przykładach

Strona cennika renderuje się bez JavaScriptu, więc liczby poniżej pochodzą z surowego HTML pobranego 22 sierpnia 2026 roku, a nie z odczytu ekranu.

Liczniki są trzy i to jest najważniejsza rzecz do zrozumienia: wczytywanie danych mierzone w gigabajtach, moc obliczeniowa zapytań mierzona w gigabajtogodzinach oraz magazyn mierzony w gigabajtach. Odpowiedź na pytanie, czy zapytania są płatne osobno, brzmi więc: tak, jako osobny licznik gigabajtogodzin.

PozycjaPersonalAxiom Cloud
Opłata stała0 USD miesięcznie, bezterminowo25 USD miesięcznie plus zużycie
Wczytywanie danych w limicie500 GB miesięcznie1 TB miesięcznie
Moc obliczeniowa zapytań w limicie10 GB-godzin miesięcznie100 GB-godzin miesięcznie
Magazyn w limicie25 GB100 GB
Retencja30 dnikonfigurowalna
Rabaty wolumenowebrakautomatyczne, progowe
Przedpłacone kredytybrakdo 30 procent taniej, bez terminu ważności
Limit wydatkównie dotyczytak, w konsoli
Wsparciespołecznośćpoczta w cenie, SLA jako dodatek

Dodatki dla firm są kupowane w konsoli i mają stałe ceny: SSO w standardzie SAML 100 USD miesięcznie, Directory Sync w standardzie SCIM 100 USD miesięcznie, kontrola dostępu oparta na rolach 50 USD miesięcznie, dziennik audytu 50 USD miesięcznie. Suma czterech dodatków to 300 USD miesięcznie, czyli dwunastokrotność opłaty stałej i 3600 USD rocznie ponad zużycie. Kto potrzebuje SSO ze względów zgodności, powinien liczyć rachunek od tej kwoty, a nie od dwudziestu pięciu dolarów.

Co się dzieje po przekroczeniu limitu. Sekcja pytań mówi, że rozliczanie za zużycie włącza się automatycznie, ale zakres tego zdania jest zawężony do planu Axiom Cloud. Ceny jednostkowe mają spadać na wyższych progach. Osobne pytanie o limit wydatków odpowiada, że zużycie ponad limit jest wstrzymywane, a nie doliczane do rachunku. To znaczy, że twardy limit wydatków kupujesz kosztem utraty danych, bo wstrzymane wczytywanie to zdarzenia, których później nie odzyskasz.

Czego strona nie podaje. Nigdzie w pobranym HTML nie ma stawek jednostkowych za gigabajt wczytanych danych, za gigabajtogodzinę ani za gigabajt magazynu. Kalkulator liczy je po stronie przeglądarki. Strona reklamuje maszynowo czytelną kartę stawek pod adresem /pricing.md, ale ten adres zwraca kod 404, co sprawdziłem tego samego dnia. Nie da się więc policzyć rachunku powyżej limitu z opublikowanych liczb i nie będę tych stawek zgadywał.

Teraz obiecane przykłady. Zakładam, że magazyn liczy się jako wolumen faktycznie przechowywany w oknie retencji, bo strona nie precyzuje, czy chodzi o dane przed kompresją, czy po niej. To jest założenie, nie potwierdzona reguła.

Aplikacja produkująca 10 GB logów miesięcznie. Wczytywanie mieści się w obu planach z dużym zapasem. Przy retencji trzydziestodniowej w magazynie leży około 10 GB, czyli poniżej limitu 25 GB w planie Personal. Zapytania mieszczą się w dziesięciu gigabajtogodzinach, o ile nie odświeżasz co chwilę pulpitów po całej historii. Rachunek w planie Personal wynosi zero. W planie Axiom Cloud wynosi 25 USD miesięcznie, czyli 300 USD rocznie, i te 300 dolarów płacisz za opłatę stałą i dodatki, a nie za objętość logów, bo objętość nie wnosi tu nic.

Aplikacja produkująca 100 GB logów miesięcznie. Wczytywanie nadal mieści się w limicie obu planów. Magazyn przestaje się mieścić. Przy retencji trzydziestodniowej trzymasz około 100 GB, czyli czterokrotność limitu w planie Personal. Strona nie mówi, co wtedy się dzieje na planie bez rozliczania za zużycie, bo odpowiedź o rozliczaniu dotyczy wyłącznie Axiom Cloud. Na planie Axiom Cloud 100 GB to dokładnie granica limitu, więc rachunek to 25 USD miesięcznie, dopóki nie przekroczysz jej ani o gigabajt. Powyżej naliczane są stawki, których dostawca nie publikuje.

Na koniec rozbieżność, którą znalazłem na tej samej stronie. Karta planu i tabela porównawcza podają limit magazynu dla Axiom Cloud jako 100 GB. Kalkulator w domyślnym ustawieniu, przy jednym terabajcie wczytywanym miesięcznie, pokazuje w rozbiciu wiersz magazynu z opisem 12 TB retained · within free allowance i wartością Included. Dwanaście terabajtów to sto dwadzieścia razy więcej niż sto gigabajtów. Podaję obie liczby, bo obie stoją w tym samym dokumencie i nie umiem rozstrzygnąć, która opisuje regułę rozliczeniową.

Axiom obok Sentry, PostHoga i reszty

Najczęstszy błąd w tej kategorii nie polega na wyborze złego narzędzia, tylko na kupieniu czterech naraz i płaceniu za to samo zdarzenie cztery razy. Te narzędzia się nie zastępują, odpowiadają na inne pytania.

NarzędziePytanie, na które odpowiadaJednostka danychModel
Axiomco dokładnie działo się w systemie o 3:14zdarzenie z dowolnymi polamizamknięta usługa, klienty MIT
Sentryktóry wyjątek psuje najwięcej sesjibłąd ze śladem stosu i grupowaniemusługa z wariantem własnym
PostHogczy użytkownicy kończą rejestracjęzdarzenie produktowe z tożsamościąusługa z wariantem własnym
Langfuse, Heliconeile kosztowało wywołanie modelu i gdzie się zacięłoślad wywołania z tokenamiusługa z wariantem własnym
ClickHousecokolwiek, jeśli sam zbudujesz platformęwiersz w tabeli z narzuconym schematembaza, którą utrzymujesz

Różnica z Sentry jest najczęściej mylona, więc rozpiszę ją osobno. Sentry przyjmuje wyjątek, wylicza jego odcisk, skleja tysiąc wystąpień w jedną sprawę, dokleja kontekst wydania i przypisuje właściciela. Axiom przyjmuje surowe zdarzenie i nic o nim nie zakłada. Kiedy wiesz, że coś się psuje, i chcesz zrozumieć dlaczego, idziesz do Axiom po pełny kontekst żądania. Kiedy chcesz wiedzieć, co psuje się najczęściej i od którego wdrożenia, idziesz do Sentry. Wpisanie do Axiom wszystkich wyjątków i próba odtworzenia grupowania w APL kończy się własnym Sentry utrzymywanym po godzinach.

Wobec klasycznego zestawu do logów, czyli Elasticsearch z warstwą wyszukiwania, Axiom sprzedaje głównie brak klastra do utrzymania. To realna oszczędność w zespole bez administratora, ale kupujesz ją przywiązaniem opisanym wyżej. Wobec ClickHouse układ jest jeszcze prostszy: ClickHouse to silnik, Axiom to gotowa platforma na silniku tej klasy. Pytanie brzmi, czy chcesz utrzymywać bazę, a nie który silnik jest szybszy.

Warto rozróżnić dwie warstwy, które łatwo pomylić. Axiom przechowuje zdarzenia i pozwala je odpytywać, a Grafana niczego nie przechowuje: rysuje panele nad danymi leżącymi gdzie indziej. To znaczy, że nie są alternatywami i w wielu wdrożeniach stoją obok siebie. Dwie rzeczy warto wiedzieć o Grafanie przed decyzją: od wersji 8 jest na AGPL, przy czym osobny plik LICENSING.md wymienia trzynaście katalogów pozostawionych na Apache 2.0, a do pełnego obrazu potrzebne są jeszcze źródła danych, bo sama Grafana ich nie zbiera.

Typowe błędy

Aktualizacja do 2.0.0 bez przeczytania jednej linijki w dzienniku zmian. Zapytanie bez pola format zwraca teraz inny kształt wyniku. W TypeScripcie zobaczysz błąd kompilacji, w czystym JavaScripcie dostaniesz undefined na produkcji.

Instalacja @axiomhq/ai w przekonaniu, że to bieżący pakiet do śledzenia wywołań modeli. Ma znacznik latest, nie ma oznaczenia jako wycofany, a ostatnia publikacja pochodzi z sierpnia 2025 roku. Rozwój jest w pakiecie axiom.

Wrzucenie @axiomhq/tanstack-start obok @axiomhq/nextjs w bieżącej wersji. Pierwszy przypina @axiomhq/logging do 0.3.0, drugi do 0.4.0, obie deklaracje bez zakresu.

Pozostanie na Node 18. Wszystkie bieżące pakiety mają engines.node ustawione na co najmniej 20, a README mówi o tym wprost.

Kupienie twardego limitu wydatków bez zrozumienia, co on robi. Zużycie ponad limit jest wstrzymywane, więc chronisz rachunek kosztem dziury w danych dokładnie wtedy, kiedy coś poszło źle i logów jest najwięcej.

Patrzenie wyłącznie na licznik wczytywania. Moc obliczeniowa zapytań jest osobno rozliczana, więc pulpit odświeżający się co dziesięć sekund po rocznym oknie danych potrafi zjeść limit gigabajtogodzin przy śladowej objętości logów.

Zaufanie automatycznemu skanerowi licencji. W axiomhq/axiom-js plik nazywa się LICENSE i nie ma linii tytułowej, w axiomhq/ai nazywa się LICENSE.md, a w archiwum pakietu axiom nie ma katalogu src. Każda z tych rzeczy potrafi wygenerować fałszywy alarm albo fałszywy spokój.

FAQ

Czy Axiom można uruchomić u siebie?

Nie. Licencja MIT obejmuje wyłącznie biblioteki klienckie w repozytorium axiom-js. Magazyn EventDB i silnik zapytań są zamknięte, a tabela porównania planów wymienia jeden tryb wdrożenia, zarządzany przez dostawcę.

Ile realnie zapłacę za sto gigabajtów logów miesięcznie?

W planie Axiom Cloud 25 USD miesięcznie, dopóki mieścisz się w limicie stu gigabajtów magazynu, co przy retencji trzydziestodniowej jest granicą włos w włos. Stawki powyżej limitu nie są publikowane na stronie cennika, a reklamowana karta stawek pod adresem /pricing.md zwraca 404.

Co zmieniło się w wersji 2.0.0 klienta JavaScript?

Jedna zmiana łamiąca zgodność: zapytanie APL bez jawnego pola format zwraca teraz wynik tabelaryczny zamiast starego formatu legacy. Wydanie ukazało się 4 sierpnia 2026 roku. Dodano też opcję fetch w ClientOptions.

Czy Axiom zastępuje Sentry?

Nie. Sentry grupuje wyjątki w sprawy z odciskiem, kontekstem wydania i właścicielem. Axiom przechowuje surowe zdarzenia i nic o ich strukturze nie zakłada. Te dwa narzędzia odpowiadają na różne pytania i najczęściej stoją obok siebie.

Czy plan darmowy nadaje się do produkcji?

Do małej usługi tak: 500 GB wczytywania miesięcznie i 30 dni retencji wystarczą wielu aplikacjom. Ograniczeniem jest magazyn 25 GB, dziesięć gigabajtogodzin zapytań i wsparcie wyłącznie społecznościowe. Strona nie precyzuje, co dzieje się po przekroczeniu limitu na planie Personal.

Czy APL odpytuje metryki?

Nie. Dokumentacja mówi wprost, że do metryk służy osobny język MPL, z osobnym adresem końcowym. Klient odzwierciedla ten podział przez mplQuery i typ MetricsQueryOptions obok zwykłego query.

Czytaj dalej

Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie