Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Python szolgáltatásfelügyeleti kódtára módot kínál az alkalmazásfunkciók funkciójelzők alapján történő fejlesztésére és elérhetővé ására. Egy új funkció fejlesztése után számos alkalmazás speciális követelményekkel rendelkezik, például mikor és milyen feltételek mellett kell engedélyezni a funkciót. Ez a kódtár lehetővé teszi ezeknek a kapcsolatoknak a meghatározását, és integrálható a Python-kódmintákba, hogy lehetővé tegye ezeknek a funkcióknak a feltárást.
A funkciójelzők lehetővé teszik, hogy a Python-alkalmazások dinamikusan kapcsolják be vagy ki a funkciókat. A fejlesztők funkciójelzőket használhatnak egyszerű használati esetekben, például feltételes utasításokban.
A Python-szolgáltatásfelügyeleti kódtár használatának néhány előnye:
A funkciókezelés általános konvenciója
Alacsony belépési korlát
- Támogatja a JSON-funkciójelző beállítását
Funkciójelölő élettartamának kezelése
- A konfigurációs értékek valós időben változhatnak; A funkciójelzők a teljes kérelemben konzisztensek lehetnek
Egyszerű és összetett forgatókönyvek
- Szolgáltatások be- és kikapcsolása deklaratív konfigurációs fájlon keresztül
- A szolgáltatás állapotának dinamikus kiértékelése a kiszolgáló hívása alapján
A Python szolgáltatásfelügyeleti kódtára nyílt forráskód. További információkért látogasson el a GitHub-adattárba.
Funkciójelölők
A funkciójelzők két részből állnak, egy névből és a funkció bekapcsolásához használt funkciószűrők listájából.
Funkciószűrők
A funkciószűrők meghatároznak egy forgatókönyvet, amikor engedélyezni kell egy funkciót. Ha a rendszer kiértékel egy funkciót, hogy be- vagy kikapcsolt állapotban van-e, a szolgáltatásszűrők listája mindaddig bejáródik, amíg az egyik szűrő el nem dönti, hogy engedélyezni kell-e a funkciót. Ezen a ponton a szolgáltatás engedélyezve van, és a funkciószűrők leállnak. Ha nincs funkciószűrő, amely azt jelzi, hogy engedélyezni kell a funkciót, akkor az le van tiltva.
Ilyen például egy Microsoft Edge böngészőfunkció-szűrő. Ez a funkciószűrő aktiválja a hozzá csatolt szolgáltatásokat, amíg a Microsoft Edge-ből http-kérés érkezik.
Funkciójelző konfigurációja
A Python-szótár a funkciójelzők definiálására szolgál. A szótár funkciónevekből, kulcsokból és funkciójelölő objektumokból áll értékként. A funkciójelző objektum egy olyan szótár, amely tartalmaz egy conditions kulcsot, amely maga is tartalmazza a client_filters kulcsot. A client_filters kulcs azoknak a funkciószűrőknek a listája, amelyek meghatározzák, hogy engedélyezni kell-e a funkciót.
Funkciójelző deklarációja
A szolgáltatásfelügyeleti kódtár a JSON-t támogatja funkciójelző-forrásként. Az alábbiakban egy példa látható a JSON-fájlok funkciójelzőinek beállításához használt formátumra.
{
"feature_management": {
"feature_flags": [
{
"id": "FeatureT",
"enabled": true
},
{
"id": "FeatureU",
"enabled": false
},
{
"id": "FeatureV",
"enabled": true,
"conditions": {
"client_filters": [
{
"name": "Microsoft.TimeWindow",
"parameters": {
"Start": "Wed, 01 May 2019 13:59:59 GMT",
"End": "Mon, 01 Jul 2019 00:00:00 GMT"
}
}
]
}
}
]
}
}
A feature_management json-dokumentum szakaszát a konvenciók a funkciójelző beállításainak betöltésére használják. A feature_flags szakasz a tárba betöltött funkciójelzők listája. A fenti szakaszban három különböző funkciót láthatunk. A funkciók a tulajdonság használatával határozzák meg a funkciószűrőket a client_filters tulajdonságon belül conditions. A funkciószűrőkben FeatureTlátható enabled , hogy true nincsenek definiálva szűrők, ami mindig visszaadja a FeatureT függvényt true .
FeatureU ugyanaz, mint FeatureT a de az enabledfalse eredmény azt eredményezi, hogy a funkció mindig visszatér false.
FeatureV a nevű szolgáltatásszűrőt Microsoft.TimeWindowadja meg.
FeatureV egy konfigurálható funkciószűrő példája. A példában láthatjuk, hogy a szűrő rendelkezik tulajdonságával parameters . A parameters tulajdonság a szűrő konfigurálására szolgál. Ebben az esetben a szolgáltatás aktiválásának kezdő és befejező időpontjai konfigurálva vannak.
A szakasz részletes sémája feature_management itt található.
Speciális: A ":" kettőspont használata tiltott a funkciójelzők neveiben.
Be- és kikapcsolási deklaráció
Az alábbi kódrészlet egy alternatív módszert mutat be a be- és kikapcsolható funkciókhoz használható funkciók definiálására.
{
"feature_management": {
"feature_flags": [
{
"id": "FeatureT",
"enabled": "true"
},
{
"id": "FeatureX",
"enabled": "false"
}
]
}
}
Követelmény típusa
A requirement_type funkciójelölő tulajdonsága határozza meg, hogy a szűrőknek használniuk Any kell-e vagy All logikát a funkció állapotának kiértékelésekor. Ha requirement_type nincs megadva, az alapértelmezett érték a következő Any.
-
Anyazt jelenti, hogy csak egy szűrőnek kell igaznak lennie ahhoz, hogy a funkció engedélyezve legyen. -
Allazt jelenti, hogy minden szűrőnek igaznak kell lennie ahhoz, hogy a funkció engedélyezve legyen.
A requirement_type bejárás All módosítása. Először is, ha nincsenek szűrők, a funkció le van tiltva. Ezután a szolgáltatásszűrők mindaddig bejáródnak, amíg az egyik szűrő úgy nem dönt, hogy le kell tiltani a funkciót. Ha nincs szűrő, amely azt jelzi, hogy a funkciót le kell tiltani, az engedélyezettnek minősül.
{
"feature_management": {
"feature_flags": [
{
"id": "FeatureW",
"enabled": "true",
"conditions": {
"requirement_type": "All",
"client_filters": [
{
"name": "Microsoft.TimeWindow",
"parameters": {
"Start": "Wed, 01 May 2019 13:59:59 GMT",
"End": "Mon, 01 Jul 2019 00:00:00 GMT"
}
},
{
"name": "Percentage",
"parameters": {
"Value": "50"
}
}
]
}
},
]
}
}
A fenti példában egy értéket ad megAllrequirement_type, ami azt jelenti, FeatureW hogy az összes szűrőjének igaznak kell lennie ahhoz, hogy a funkció engedélyezve legyen. Ebben az esetben a funkció a felhasználók 50%-a számára engedélyezve van a megadott időkeretben.
Használat
A funkciókezelés alapszintű formája annak ellenőrzése, hogy engedélyezve van-e a funkciójelző, majd az eredmény alapján hajt végre műveleteket. A funkciójelző állapotának ellenőrzése a metóduson is_enabled keresztül FeatureManagertörténik.
…
feature_manager = FeatureManager(feature_flags)
…
if feature_manager.is_enabled("FeatureX"):
# Do something
A feature_flags megadott FeatureManager lehetőség lehet a AzureAppConfigurationProvider funkciójelzők szótára vagy szótára.
Funkciószűrő implementálása
A szolgáltatásszűrők létrehozásával lehetővé válik a szolgáltatások engedélyezése az Ön által meghatározott feltételek alapján. A funkciószűrő implementálásához az FeatureFilter interfészt végre kell hajtani.
FeatureFilter egyetlen metódussal rendelkezik evaluate. Ha egy szolgáltatás megadja, hogy engedélyezhető egy szolgáltatásszűrőhöz, a evaluate metódus meghívása történik. Ha evaluate visszaadja true, az azt jelenti, hogy a funkciót engedélyezni kell.
Az alábbi kódrészlet bemutatja, hogyan adhat hozzá testre szabott funkciószűrőt MyCustomFilter.
feature_manager = FeatureManager(feature_flags, feature_filters=[MyCustomFilter()])
A szolgáltatásszűrők regisztrálása a tulajdonságnak feature_filters a létrehozáskor FeatureManagertörténő biztosításával történik. Ha egy egyéni szolgáltatásszűrőnek bármilyen környezetre szüksége van, akkor a híváskor is_enabledkwargsátadhatók.
Szűrő aliasattribútum
Ha egy funkciószűrő regisztrálva van egy funkciójelölőhöz, a rendszer alapértelmezés szerint a szűrő nevét használja aliasként.
A funkciószűrő azonosítóját felül lehet bírálni a @FeatureFilter.alias("MyFilter"). Ezzel az attribútummal egy funkciószűrővel deklarálható az a név, amelyet a konfigurációban használni kell a funkciószűrőre való hivatkozáshoz egy funkciójelölőn belül.
Hiányzó funkciószűrők
Ha egy szolgáltatás úgy van konfigurálva, hogy engedélyezve legyen egy adott szolgáltatásszűrőhöz, és a funkciószűrő nincs regisztrálva, ValueError a szolgáltatás kiértékelésekor kivétel keletkezik.
Beépített funkciószűrők
A csomaghoz két funkciószűrő tartozik FeatureManagement : TimeWindowFilterés TargetingFilter.
Minden beépített funkciószűrő saját paraméterekkel rendelkezik. Íme a szolgáltatásszűrők listája a példákkal együtt.
Microsoft.TimeWindow
Ez a szűrő lehetővé teszi egy szolgáltatás időkereten alapuló engedélyezését. Ha csak End a megadott érték van megadva, a szolgáltatás addig is be van kapcsolva. Ha csak Start meg van adva, a szolgáltatás az adott időpont után minden ponton figyelembe lesz véve.
"client_filters": [
{
"name": "Microsoft.TimeWindow",
"parameters": {
"Start": "Wed, 01 May 2019 13:59:59 GMT",
"End": "Mon, 01 Jul 2019 00:00:00 GMT"
}
}
]
Microsoft.Targeting
Ez a szűrő lehetővé teszi egy szolgáltatás engedélyezését a célközönség számára. A célzás részletes magyarázatát az alábbi célzási szakasz ismerteti. A szűrőparaméterek közé tartoznak a Audience felhasználókat, csoportokat, kizárt felhasználókat/csoportokat leíró objektumok, valamint a szolgáltatáshoz hozzáféréssel rendelkező felhasználói bázis alapértelmezett százalékos aránya. A szakaszban felsorolt csoportobjektumoknak Groups azt is meg kell adniuk, hogy a csoport tagjainak hány százaléka rendelkezzen hozzáféréssel. Ha egy felhasználó közvetlenül vagy kizárt csoportban van megadva a Exclusion szakaszban, a szolgáltatás le van tiltva. Ellenkező esetben, ha egy felhasználó közvetlenül a Users szakaszban van megadva, vagy ha a felhasználó szerepel a csoport bevezetésének százalékos arányában, vagy ha a felhasználó az alapértelmezett bevezetési százalékra esik, akkor a felhasználónak engedélyezve lesz a funkció.
"client_filters": [
{
"name": "Microsoft.Targeting",
"parameters": {
"Audience": {
"Users": [
"Jeff",
"Alicia"
],
"Groups": [
{
"Name": "Ring0",
"RolloutPercentage": 100
},
{
"Name": "Ring1",
"RolloutPercentage": 50
}
],
"DefaultRolloutPercentage": 20,
"Exclusion": {
"Users": [
"Ross"
],
"Groups": [
"Ring2"
]
}
}
}
}
]
Célcsoportkezelés
A célzás egy funkciókezelési stratégia, amely lehetővé teszi a fejlesztők számára, hogy fokozatosan új funkciókat vezessenek be a felhasználói bázisukra. A stratégia a célközönségként ismert felhasználók egy csoportjának megcélzására épül. A célközönség meghatározott felhasználókból, csoportokból, kizárt felhasználókból/csoportokból és a teljes felhasználói bázis meghatározott százalékából áll. A közönségbe felvett csoportok további bontásban, a teljes tagok százalékos arányára bonthatók.
Az alábbi lépések egy új bétaverziós funkció fokozatos bevezetésére mutatnak be példát:
- Az egyes felhasználók Jeff és Alicia kapnak hozzáférést a bétaverzióhoz.
- Egy másik felhasználó, Mark, kéri, hogy jelentkezzen be, és szerepel benne.
- A "Ring1" nevű csoport felhasználóinak húsz százaléka szerepel a bétaverzióban.
- A bétaverzióban szereplő "Ring1" felhasználók száma akár 100 százalékra is csökken.
- A felhasználói bázis öt százaléka szerepel a bétaverzióban.
- A bevezetési százalék akár 100 százalék is lehet, és a funkció teljesen ki lett adva.
Ez a funkció üzembe helyezésének stratégiája a beépített Microsoft.Targeting funkciószűrőn keresztül van beépítve a tárba.
Felhasználó megcélzása
A felhasználót közvetlenül a is_enabled hívásban, vagy TargetingContext a felhasználó és az opcionális csoport megadására is használhatja.
# Directly specifying the user
result = is_enabled(feature_flags, "test_user")
# Using a TargetingContext
result = is_enabled(feature_flags, TargetingContext(user_id="test_user", groups=["Ring1"]))
Kizárás célzása
Célközönség meghatározásakor a felhasználók és csoportok kizárhatók a célközönségből. A kizárások akkor hasznosak, ha egy szolgáltatás egy felhasználói csoport számára kerül bevezetésre, de néhány felhasználót vagy csoportot ki kell zárni a bevezetésből. A kizárást a felhasználók és csoportok listájának a célközönség tulajdonságához való hozzáadásával lehet definiálni Exclusion .
"Audience": {
"Users": [
"Jeff",
"Alicia"
],
"Groups": [
{
"Name": "Ring0",
"RolloutPercentage": 100
}
],
"DefaultRolloutPercentage": 0,
"Exclusion": {
"Users": [
"Mark"
]
}
}
A fenti példában a funkció engedélyezve van az elnevezett Jeff és Aliciaa . A csoporthoz tartozó felhasználók számára is engedélyezve Ring0van. Ha azonban a felhasználó neve el van nevezve Mark, a szolgáltatás le van tiltva, függetlenül attól, hogy a csoportban Ring0 vannak-e, vagy sem. A kizárások elsőbbséget élveznek a célszűrő többi részével szemben.
Változatok
Amikor új funkciókat adnak hozzá egy alkalmazáshoz, előfordulhat, hogy egy funkció több különböző javasolt tervezési lehetőséggel rendelkezik. A tervezéssel kapcsolatos döntések egyik gyakori megoldása az A/B tesztelés valamilyen formája. Az A/B-tesztelés magában foglalja a funkció egy másik verziójának biztosítását a felhasználói bázis különböző szegmensei számára, és a felhasználói interakciók alapján kiválaszt egy verziót. Ebben a kódtárban ez a funkció egy funkció különböző konfigurációinak variánsokkal való ábrázolásával engedélyezve van.
A változatok lehetővé teszik, hogy egy funkciójelző több legyen, mint egy egyszerű be- és kikapcsolási jelző. A variánsok egy funkciójelző értékét jelölik, amely lehet sztring, szám, logikai vagy akár konfigurációs objektum is. A változatokat deklaráló funkciójelzőnek meg kell határoznia, hogy milyen körülmények között kell használni az egyes változatokat, amelyről részletesebben a Kiosztási változatok szakaszban olvashat.
class Variant:
def __init__(self, name: str, configuration: Any):
self._name = name
self._configuration = configuration
@property
def name(self) -> str:
"""
The name of the variant.
:rtype: str
"""
return self._name
@property
def configuration(self) -> Any:
"""
The configuration of the variant.
:rtype: Any
"""
return self._configuration
Változatok lekérése
Minden funkcióhoz lekérhető egy variáns a FeatureManager"metódus" get_variant használatával.
…
variant = print(feature_manager.get_variant("TestVariants", TargetingContext(user_id="Adam"))
variantConfiguration = variant.configuration;
// Do something with the resulting variant and its configuration
A visszaadott variáns az éppen kiértékelt felhasználótól függ, és az információ a következő példányból származik TargetingContext: .
Variant-funkciójelző deklarációja
A normál funkciójelzőkhöz képest a változatfunkció-jelzők két további tulajdonsággal rendelkeznek: variants és allocation. A variants tulajdonság egy tömb, amely a funkcióhoz definiált változatokat tartalmazza. A allocation tulajdonság határozza meg, hogyan kell lefoglalni ezeket a változatokat a funkcióhoz. A normál funkciójelölők deklarálásával egy JSON-fájlban is beállíthat változatfunkció-jelzőket. Íme egy példa egy változatfunkció-jelzőre.
{
"feature_management": {
"feature_flags": [
{
"id": "MyVariantFeatureFlag",
"enabled": true,
"allocation": {
"default_when_enabled": "Small",
"group": [
{
"variant": "Big",
"groups": [
"Ring1"
]
}
]
},
"variants": [
{
"name": "Big"
},
{
"name": "Small"
}
]
}
]
}
}
Változatok definiálása
Mindegyik változat két tulajdonsággal rendelkezik: egy névvel és egy konfigurációval. A név egy adott változatra hivatkozik, a konfiguráció pedig az adott változat értéke. A konfiguráció tulajdonság használatával configuration_value állítható be.
configuration_value egy beágyazott konfiguráció, amely lehet sztring, szám, logikai vagy konfigurációs objektum. Ha configuration_value nincs megadva, a visszaadott változat tulajdonsága Configuration .None
A tulajdonság minden egyes funkciójára vonatkozóan meg van határozva az variants összes lehetséges változat listája.
{
"feature_management": {
"feature_flags": [
{
"id": "MyVariantFeatureFlag",
"variants": [
{
"name": "Big",
"configuration_value": {
"Size": 500
}
},
{
"name": "Small",
"configuration_value": {
"Size": 300
}
}
]
}
]
}
}
Változatok kiosztása
A funkcióváltozatok kiosztásának folyamatát a allocation funkció tulajdonsága határozza meg.
"allocation": {
"default_when_enabled": "Small",
"default_when_disabled": "Small",
"user": [
{
"variant": "Big",
"users": [
"Marsha"
]
}
],
"group": [
{
"variant": "Big",
"groups": [
"Ring1"
]
}
],
"percentile": [
{
"variant": "Big",
"from": 0,
"to": 10
}
],
"seed": "13973240"
},
"variants": [
{
"name": "Big",
"configuration_value": "500px"
},
{
"name": "Small",
"configuration_value": "300px"
}
]
A allocation funkció beállítása a következő tulajdonságokkal rendelkezik:
| Tulajdonság | Leírás |
|---|---|
default_when_disabled |
Megadja, hogy melyik változatot kell használni, amikor egy változatot kérnek, miközben a funkció le van tiltva. |
default_when_enabled |
Megadja, hogy melyik változatot kell használni, amikor egy változatot kérnek, miközben a funkció engedélyezve van, és nem rendeltek hozzá más változatot a felhasználóhoz. |
user |
Egy változatot és azon felhasználók listáját adja meg, akikhez a változatot hozzá kell rendelni. |
group |
Egy variánst és egy csoportlistát határoz meg. A variáns akkor lesz hozzárendelve, ha a felhasználó legalább egy csoportban van. |
percentile |
Egy variánst és egy százalékos tartományt ad meg, amelyhez a felhasználó számított százalékos aránya igazodik a hozzárendelendő változathoz. |
seed |
Az az érték, amelyre a percentile százalékos számítások alapulnak. Ha ugyanazt seed az értéket használja, az adott felhasználó százalékos kiszámítása minden szolgáltatásban azonos lesz. Ha nincs seed megadva, a rendszer létrehoz egy alapértelmezett magot a szolgáltatásnév alapján. |
Ha a funkció nincs engedélyezve, a funkciókezelő hozzárendeli az aktuális felhasználóhoz jelölt default_when_disabled változatot, amely ebben az esetben van Small .
Ha a funkció engedélyezve van, a funkciókezelő ellenőrzi a user, groupés percentile a foglalásokat abban a sorrendben, hogy hozzárendeljen egy változatot. Ebben a konkrét példában, ha a kiértékelt felhasználó neve el van nevezve Marsha, a névvel ellátott Ring1csoportban, vagy a felhasználó a 0 és a 10. percentilis közé esik, akkor a megadott változat lesz hozzárendelve a felhasználóhoz. Ebben az esetben az összes hozzárendelt felhasználó visszaadja a Big változatot. Ha egyik foglalás sem egyezik meg, a felhasználóhoz hozzá lesz rendelve a default_when_enabled variáns, azaz a Small.
A kiosztási logika hasonló a Microsoft.Targeting szolgáltatásszűrőhöz, de vannak olyan paraméterek, amelyek nem szerepelnek a kiosztásban, és fordítva. A célzás és a kiosztás eredményei nem kapcsolódnak egymáshoz.
Engedélyezett állapot felülírása egy variánssal
A változatok használatával felülbírálhatja egy funkciójelző engedélyezett állapotát. A felülírás lehetőséget ad a variánsoknak egy funkciójelző kiértékelésének kiterjesztésére. Ha változókkal rendelkező jelölőt hív meg is_enabled , a szolgáltatáskezelő ellenőrzi, hogy az aktuális felhasználóhoz rendelt változat felülbírálja-e az eredményt. A felülírás az opcionális változattulajdonság status_overridehasználatával történik. Alapértelmezés szerint ez a tulajdonság be van állítva None, ami azt jelenti, hogy a változat nem befolyásolja, hogy a jelző engedélyezve vagy letiltva van-e. Beállítás status_override , amely lehetővé teszi, hogy Enabled a variáns a választáskor felülbíráljon egy jelölőt.
Disabled A beállítás status_override az ellenkező funkciót biztosítja, ezért letiltja a jelölőt a változat kiválasztásakor. Egy állapotú enabledfalse funkció nem bírálható felül.
Ha bináris változatokkal rendelkező funkciójelzőt használ, a status_override tulajdonság hasznos lehet. Lehetővé teszi az API-k használatának folytatását, mint is_enabled az alkalmazásban, mindezt úgy, hogy kihasználja a variánsokkal járó új funkciókat, például a percentilis kiosztást és a magot.
{
"id": "MyVariantFeatureFlag",
"enabled": true,
"allocation": {
"percentile": [
{
"variant": "On",
"from": 10,
"to": 20
}
],
"default_when_enabled": "Off",
"seed": "Enhanced-Feature-Group"
},
"variants": [
{
"name": "On"
},
{
"name": "Off",
"status_override": "Disabled"
}
]
}
A fenti példában a funkció mindig engedélyezve van. Ha az aktuális felhasználó a számított percentilistartományban van 10 és 20 között, akkor a rendszer visszaadja a On variánst. Ellenkező esetben a rendszer visszaadja a Off variánst, és mivel status_override az egyenlő Disabled, a funkció le lesz tiltva.
Telemetria
Amikor üzembe helyez egy funkciójelző-módosítást, gyakran fontos elemezni az alkalmazásra gyakorolt hatását. Íme például néhány kérdés, amely felmerülhet:
- A jelzők a várt módon vannak engedélyezve/letiltva?
- A megcélzott felhasználók a várt módon férnek hozzá egy adott funkcióhoz?
- Melyik változatot látja egy adott felhasználó?
Ezekre a kérdésekre a funkciójelzők kiértékelési eseményeinek kibocsátásával és elemzésével lehet válaszolni. Ez a kódtár opcionálisan lehetővé teszi AzureMonitor a nyomkövetési telemetria előállítását a funkciójelző kiértékelése során.OpenTelemetry
Telemetria engedélyezése
Alapértelmezés szerint a funkciójelzők nem bocsátanak ki telemetriát. Egy adott funkciójelző telemetriájának közzétételéhez a jelzőnek be kell jelentenie, hogy engedélyezve van a telemetriai kibocsátáshoz.
A jsonban definiált funkciójelzők esetében az engedélyezés a telemetry tulajdonság használatával történik.
{
"feature_management": {
"feature_flags": [
{
"id": "MyFeatureFlag",
"enabled": true,
"telemetry": {
"enabled": true
}
}
]
}
}
A fenti kódrészlet egy olyan funkciójelölőt MyFeatureFlag határoz meg, amely engedélyezve van a telemetriához. Az telemetry objektum tulajdonsága enabled a következőre truevan állítva: . A tulajdonság értékét a enabled jelölő telemetriájának közzétételéhez kell megadni true .
A telemetry funkciójelölő szakasza a következő tulajdonságokkal rendelkezik:
| Tulajdonság | Leírás |
|---|---|
enabled |
Megadja, hogy közzé kell-e tenni a telemetriát a funkciójelölőhöz. |
metadata |
A kulcs-érték párok szótárként modellezett gyűjteménye, amely a funkciójelző egyéni metaadatainak a kiértékelési eseményekhez való csatolására használható. |
Emellett a létrehozáskor FeatureManagervisszahívást kell regisztrálni a telemetriai események kezeléséhez. Ezt a visszahívást akkor hívja meg a program, ha kiértékel egy funkciójelzőt, és a telemetria engedélyezve van az adott jelzőhöz.
feature_manager = FeatureManager(feature_flags, on_feature_evaluated=publish_telemetry)
Application Insights-telemetria
A szolgáltatásfelügyeleti kódtár egy beépített telemetriai közzétevőt biztosít, amely a funkciójelző kiértékelési adatait küldi el az Application Insightsnak. Az Application Insights engedélyezéséhez a szolgáltatásfelügyeleti kódtár az Azure Monitor pip install FeatureManagement[AzureMonitor]használatával telepíthető. Ez a parancs telepíti a azure-monitor-events-extension csomagot, amely az Application Insights telemetriájának Az OpenTelemetria használatával történő stílusára szolgál.
Feljegyzés
A azure-monitor-events-extension csomag csak a Telemetria megnyitása folyamathoz adja hozzá a telemetriát. Az Application Insights regisztrálása továbbra is szükséges.
from azure.monitor.opentelemetry import configure_azure_monitor
configure_azure_monitor(
connection_string="InstrumentationKey=00000000-0000-0000-0000-000000000000"
)
Egyéni telemetriai közzététel
Mivel a telemetriai visszahívás egy függvény, testre szabható a telemetriai adatok bármely kívánt célhelyen való közzétételéhez. A telemetriát közzéteheti például egy naplózási szolgáltatásban, egy adatbázisban vagy egy egyéni telemetriai szolgáltatásban.
Ha kiértékel egy funkciójelzőt, és engedélyezve van a telemetria, a szolgáltatáskezelő egy paraméterrel meghívja a telemetriai visszahívást EvaluationEvent .
EvaluationEvent a következő tulajdonságokat tartalmazza:
| Címke | Leírás |
|---|---|
feature |
A használt funkciójelző. |
user |
A célzáshoz használt felhasználói azonosító. |
enabled |
Azt jelzi, hogy a funkciójelző engedélyezve van-e. |
Variant |
A hozzárendelt változat. |
VariantAssignmentReason |
A változat hozzárendelésének oka. |
Következő lépések
Ha meg szeretné tudni, hogyan használhatja a funkciójelzőket az alkalmazásokban, folytassa az alábbi rövid útmutatókkal.
A funkciószűrők használatának megismeréséhez folytassa az alábbi oktatóanyagokkal.