Osvědčené postupy pro používání rozhraní API detektoru anomáliíBest practices for using the Anomaly Detector API

Rozhraní API pro detekci anomálií je Bezstavová služba pro detekci anomálií.The Anomaly Detector API is a stateless anomaly detection service. Přesnost a výkon jejich výsledků může mít vliv na:The accuracy and performance of its results can be impacted by:

  • Jak se připravují data časové řady.How your time series data is prepared.
  • Použité parametry rozhraní API detektoru anomálií.The Anomaly Detector API parameters that were used.
  • Počet datových bodů v žádosti rozhraní API.The number of data points in your API request.

V tomto článku se seznámíte s osvědčenými postupy pro používání rozhraní API, které získává nejlepší výsledky pro vaše data.Use this article to learn about best practices for using the API getting the best results for your data.

Kdy použít detekci anomálií (celý) nebo nejnovější (poslední) bod dávkyWhen to use batch (entire) or latest (last) point anomaly detection

Koncový bod rozhraní API pro detekci anomálií umožňuje detekovat anomálie prostřednictvím celých dat řady času.The Anomaly Detector API's batch detection endpoint lets you detect anomalies through your entire times series data. V tomto režimu zjišťování se vytvoří jeden statistický model a použije se na každý bod v sadě dat.In this detection mode, a single statistical model is created and applied to each point in the data set. Pokud vaše časová řada obsahuje níže uvedené charakteristiky, doporučujeme vám pomocí zjišťování služby Batch zobrazit náhled vašich dat v jednom volání rozhraní API.If your time series has the below characteristics, we recommend using batch detection to preview your data in one API call.

  • Sezónní časová řada s příležitostnými anomáliemi.A seasonal time series, with occasional anomalies.
  • Paušální časová řada trendů s příležitostnými špičkami a neshodou.A flat trend time series, with occasional spikes/dips.

Nedoporučujeme používat detekci anomálií služby Batch pro monitorování dat v reálném čase nebo ho používat v datech časových řad, která neobsahují výše uvedené charakteristiky.We don't recommend using batch anomaly detection for real-time data monitoring, or using it on time series data that doesn't have above characteristics.

  • Při detekci dávky se vytvoří a použije jenom jeden model. zjišťování jednotlivých bodů se provádí v kontextu celé řady.Batch detection creates and applies only one model, the detection for each point is done in the context of whole series. Pokud se data časové řady pohybují nahoru a dolů bez sezónnost, může model nějaký bod změny (DIP a špičky v datech) chybět.If the time series data trends up and down without seasonality, some points of change (dips and spikes in the data) may be missed by the model. Podobně některé body změny, které jsou méně významné než v sadě dat, se nemusí počítat, protože jsou dostatečně významné pro začlenění do modelu.Similarly, some points of change that are less significant than ones later in the data set may not be counted as significant enough to be incorporated into the model.

  • Zjišťování dávky je pomalejší než zjišťování stavu anomálií posledního bodu při monitorování dat v reálném čase, z důvodu počtu analyzovaných bodů.Batch detection is slower than detecting the anomaly status of the latest point when doing real-time data monitoring, because of the number of points being analyzed.

Pro monitorování dat v reálném čase doporučujeme zjistit stav anomálií jenom pro poslední datový bod.For real-time data monitoring, we recommend detecting the anomaly status of your latest data point only. Po neustálém použití nejnovější detekce bodů je možné monitorování streamování dat dělat efektivněji a přesně.By continuously applying latest point detection, streaming data monitoring can be done more efficiently and accurately.

Následující příklad popisuje vliv těchto režimů detekce na výkon.The example below describes the impact these detection modes can have on performance. První obrázek ukazuje výsledek nepřetržitého zjišťování stavu anomálií nejnovější bod v 28 dříve zjištěných datových bodech.The first picture shows the result of continuously detecting the anomaly status latest point along 28 previously seen data points. Červené body jsou anomálie.The red points are anomalies.

Obrázek znázorňující detekci anomálií s využitím posledního bodu

Níže je stejná datová sada používající detekci anomálií v dávce.Below is the same data set using batch anomaly detection. Model sestavený pro operaci ignoroval několik anomálií označených obdélníky.The model built for the operation has ignored several anomalies, marked by rectangles.

Obrázek znázorňující detekci anomálií pomocí metody Batch

Příprava datData preparation

Rozhraní API detektoru anomálií akceptuje data časové řady formátovaná do objektu žádosti JSON.The Anomaly Detector API accepts time series data formatted into a JSON request object. Časová řada může být jakákoli číselná data zaznamenaná v průběhu času v sekvenčním pořadí.A time series can be any numerical data recorded over time in sequential order. Můžete odesílat okna dat časových řad do koncového bodu rozhraní API detektoru anomálií, aby se zlepšil výkon rozhraní API.You can send windows of your time series data to the Anomaly Detector API endpoint to improve the API's performance. Minimální počet datových bodů, které můžete odeslat, je 12 a maximum je 8640 bodů.The minimum number of data points you can send is 12, and the maximum is 8640 points. Členitost je definována jako sazba, na kterou jsou data Navzorkovaná.Granularity is defined as the rate that your data is sampled at.

Datové body odesílané do rozhraní API detektoru anomálií musí mít platný koordinovaný světový čas (UTC) a číselnou hodnotu.Data points sent to the Anomaly Detector API must have a valid Coordinated Universal Time (UTC) timestamp, and numerical value.

{
    "granularity": "daily",
    "series": [
      {
        "timestamp": "2018-03-01T00:00:00Z",
        "value": 32858923
      },
      {
        "timestamp": "2018-03-02T00:00:00Z",
        "value": 29615278
      },
    ]
}

Pokud jsou vaše data Navzorkovaná v nestandardním časovém intervalu, můžete ji zadat přidáním customInterval atributu do své žádosti.If your data is sampled at a non-standard time interval, you can specify it by adding the customInterval attribute in your request. Například pokud je vaše série Vzorkovat každých 5 minut, můžete do žádosti JSON přidat následující:For example, if your series is sampled every 5 minutes, you can add the following to your JSON request:

{
    "granularity" : "minutely", 
    "customInterval" : 5
}

Chybějící datové bodyMissing data points

Chybějící datové body jsou společné rovnoměrně distribuovaným datovým sadám časových řad, zejména s jemnou členitosti (malý interval vzorkování.Missing data points are common in evenly distributed time series data sets, especially ones with a fine granularity (A small sampling interval. Například data jsou ve vzorku každých několik minut.For example, data sampled every few minutes). Chybějící méně než 10% očekávaného počtu bodů v datech by neměl mít negativní dopad na výsledky detekce.Missing less than 10% of the expected number of points in your data shouldn't have a negative impact on your detection results. Zvažte vyplnění mezer ve vašich datech na základě jejich vlastností, jako je nahrazování datových bodů z dřívějšího období, lineární interpolace nebo klouzavý průměr.Consider filling gaps in your data based on its characteristics like substituting data points from an earlier period, linear interpolation, or a moving average.

Agregovaná distribuovaná dataAggregate distributed data

Rozhraní API pro detekci anomálií funguje nejlépe u rovnoměrně distribuovaných časových řad.The Anomaly Detector API works best on an evenly distributed time series. Pokud se data náhodně distribuují, měli byste je agregovat podle jednotky času, například za minutu, každou hodinu nebo každý den.If your data is randomly distributed, you should aggregate it by a unit of time, such as Per-minute, hourly, or daily for example.

Detekce anomálií u dat pomocí sezónních vzorůAnomaly detection on data with seasonal patterns

Pokud víte, že vaše data časové řady mají sezónní vzor (k tomu dochází v pravidelných intervalech), můžete zlepšit přesnost a dobu odezvy rozhraní API.If you know that your time series data has a seasonal pattern (one that occurs at regular intervals), you can improve the accuracy and API response time.

Určení period při vytváření požadavku JSON může snížit latenci detekce anomálií až o 50%.Specifying a period when you construct your JSON request can reduce anomaly detection latency by up to 50%. period Je celé číslo, které určuje zhruba počet datových bodů, které časová řada potřebuje k opakování vzoru.The period is an integer that specifies roughly how many data points the time series takes to repeat a pattern. Například časová řada s jedním datovým bodem za den bude period mít jako 7a časová řada s jedním bodem za hodinu (se stejným týdenním vzorem) by period měla. 7*24For example, a time series with one data point per day would have a period as 7, and a time series with one point per hour (with the same weekly pattern) would have a period of 7*24. Pokud si nejste jisti vzorem vašich dat, nemusíte tento parametr zadávat.If you're unsure of your data's patterns, you don't have to specify this parameter.

Nejlepších výsledků dosáhnete, když periodzadáte 4 pro datový bod a navíc ještě další.For best results, provide 4 period's worth of data point, plus an additional one. Například hodinová data s týdenním vzorem, jak je popsáno výše, by měla v textu žádosti (7 * 24 * 4 + 1) poskytnout 673 datových bodů.For example, hourly data with a weekly pattern as described above should provide 673 data points in the request body (7 * 24 * 4 + 1).

Vzorkování dat pro sledování v reálném časeSampling data for real-time monitoring

Pokud jsou vaše streamovaná data vzorkovat v krátkém intervalu (například sekund nebo minut), může odeslání doporučeného počtu datových bodů překročit maximální povolený počet (8640 datových bodů) rozhraní API detektoru anomálií.If your streaming data is sampled at a short interval (for example seconds or minutes), sending the recommended number of data points may exceed the Anomaly Detector API's maximum number allowed (8640 data points). Pokud vaše data zobrazují stabilní sezónní vzor, zvažte odeslání ukázky dat časových řad v delším časovém intervalu, například hodiny.If your data shows a stable seasonal pattern, consider sending a sample of your time series data at a larger time interval, like hours. Vzorkování dat tímto způsobem může také znamenat zvýšení doby odezvy rozhraní API.Sampling your data in this way can also noticeably improve the API response time.

Další krokyNext steps