Bagikan melalui


Manajemen fitur Python

Pustaka manajemen fitur Python menyediakan cara untuk mengembangkan dan mengekspos fungsionalitas aplikasi berdasarkan bendera fitur. Setelah fitur baru dikembangkan, banyak aplikasi memiliki persyaratan khusus, seperti kapan fitur harus diaktifkan dan dalam kondisi apa. Pustaka ini menyediakan cara untuk menentukan hubungan ini, dan juga terintegrasi ke dalam pola kode Python umum untuk memungkinkan mengekspos fitur-fitur ini.

Bendera fitur menyediakan cara bagi aplikasi Python untuk mengaktifkan atau menonaktifkan fitur secara dinamis. Pengembang dapat menggunakan bendera fitur dalam kasus penggunaan sederhana seperti pernyataan kondisional.

Berikut adalah beberapa manfaat menggunakan pustaka manajemen fitur Python:

  • Konvensi umum untuk manajemen fitur

  • Hambatan rendah ke entri

    • Mendukung penyiapan bendera fitur JSON
  • Manajemen masa pakai bendera fitur

    • Nilai konfigurasi dapat berubah secara real time; bendera fitur dapat konsisten di seluruh permintaan
  • Skenario sederhana hingga kompleks tercakup

    • Mengaktifkan/menonaktifkan fitur melalui file konfigurasi deklaratif
    • Mengevaluasi status fitur secara dinamis berdasarkan panggilan ke server

    Pustaka manajemen fitur Python sumber terbuka. Untuk informasi selengkapnya, kunjungi repositori GitHub.

Gunakan bendera fitur

Bendera fitur terdiri dari dua bagian, nama dan daftar filter fitur yang digunakan untuk mengaktifkan fitur.

Filter fitur

Filter fitur menentukan skenario kapan fitur harus diaktifkan. Ketika fitur dievaluasi apakah fitur tersebut aktif atau nonaktif, daftar filter fiturnya dilalui hingga salah satu filter memutuskan fitur harus diaktifkan. Pada titik ini, fitur ini dianggap diaktifkan dan traversal melalui filter fitur berhenti. Jika tidak ada filter fitur yang menunjukkan bahwa fitur harus diaktifkan, filter tersebut dianggap dinonaktifkan.

Sebagai contoh, filter fitur browser Microsoft Edge dapat dirancang. Filter fitur ini akan mengaktifkan fitur apa pun yang terpasang padanya, selama permintaan HTTP berasal dari Microsoft Edge.

Konfigurasi bendera fitur

Kamus Python digunakan untuk menentukan bendera fitur. Kamus terdiri dari nama fitur sebagai kunci dan objek bendera fitur sebagai nilai. Objek bendera fitur adalah kamus yang berisi conditions kunci, yang berisi kunci itu client_filters sendiri. Kuncinya client_filters adalah daftar filter fitur yang digunakan untuk menentukan apakah fitur harus diaktifkan.

Deklarasi bendera fitur

Pustaka manajemen fitur mendukung json sebagai sumber bendera fitur. Di bawah ini kami memiliki contoh format yang digunakan untuk menyiapkan bendera fitur dalam file JSON.

{
    "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"
                            }
                        }
                    ]
                }
            }
        ]
    }
}

Bagian feature_management dokumen json digunakan oleh konvensi untuk memuat pengaturan bendera fitur. Bagian feature_flags ini adalah daftar bendera fitur yang dimuat ke dalam pustaka. Di bagian di atas, kita melihat tiga fitur berbeda. Fitur menentukan filter fitur mereka menggunakan client_filters properti , di dalam conditions. Dalam filter fitur untuk FeatureT, kita lihat enabled tanpa true filter yang ditentukan, menghasilkan FeatureT selalu mengembalikan true . FeatureU sama seperti FeatureT tetapi dengan enabled menghasilkan false fitur selalu mengembalikan false. FeatureV menentukan filter fitur bernama Microsoft.TimeWindow. FeatureV adalah contoh filter fitur yang dapat dikonfigurasi. Kita dapat melihat dalam contoh bahwa filter memiliki parameters properti . Properti parameters digunakan untuk mengonfigurasi filter. Dalam hal ini, waktu mulai dan berakhir agar fitur aktif dikonfigurasi.

Skema terperinci dari feature_management bagian dapat ditemukan di sini.

Tingkat Lanjut: Penggunaan titik dua ':' dilarang dalam nama bendera fitur.

Deklarasi aktif/nonaktif

Cuplikan berikut menunjukkan cara alternatif untuk menentukan fitur yang dapat digunakan untuk fitur aktif/nonaktif.

{
    "feature_management": {
        "feature_flags": [
            {
                "id": "FeatureT",
                "enabled": "true"
            },
            {
                "id": "FeatureX",
                "enabled": "false"
            }
        ]
    }
}

Jenis persyaratan

Properti requirement_type bendera fitur digunakan untuk menentukan apakah filter harus menggunakan Any atau All logika saat mengevaluasi status fitur. Jika requirement_type tidak ditentukan, nilai defaultnya adalah Any.

  • Any berarti hanya satu filter yang perlu dievaluasi ke true agar fitur diaktifkan.
  • All berarti setiap filter perlu mengevaluasi ke true agar fitur diaktifkan.

Sebuah requirement_typeAll perubahan traversal. Pertama, jika tidak ada filter, fitur dinonaktifkan. Kemudian, filter fitur dilalui hingga salah satu filter memutuskan bahwa fitur harus dinonaktifkan. Jika tidak ada filter yang menunjukkan bahwa fitur harus dinonaktifkan, fitur tersebut dianggap diaktifkan.

{
    "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"
                            }
                        }
                    ]
                }
            },
        ]
    }
}

Dalam contoh di atas, FeatureW menentukan requirement_type dari All, yang berarti semua filternya harus dievaluasi ke true agar fitur diaktifkan. Dalam hal ini, fitur diaktifkan untuk 50% pengguna selama jendela waktu yang ditentukan.

Konsumsi

Bentuk dasar manajemen fitur sedang memeriksa apakah bendera fitur diaktifkan lalu melakukan tindakan berdasarkan hasilnya. Memeriksa status bendera fitur dilakukan melalui FeatureManagermetode .is_enabled

…
feature_manager = FeatureManager(feature_flags)
…
if feature_manager.is_enabled("FeatureX"):
    # Do something

yang feature_flags disediakan untuk FeatureManager dapat berupa AzureAppConfigurationProvider atau kamus bendera fitur.

Menerapkan filter fitur

Membuat filter fitur menyediakan cara untuk mengaktifkan fitur berdasarkan kriteria yang Anda tentukan. Untuk menerapkan filter fitur, FeatureFilter antarmuka harus diimplementasikan. FeatureFilter memiliki satu metode bernama evaluate. Ketika fitur menentukan bahwa fitur tersebut dapat diaktifkan untuk filter fitur, evaluate metode dipanggil. Jika evaluate mengembalikan true, itu berarti fitur harus diaktifkan.

Cuplikan berikut menunjukkan cara menambahkan filter MyCustomFilterfitur yang dikustomisasi .

feature_manager = FeatureManager(feature_flags, feature_filters=[MyCustomFilter()])

Filter fitur didaftarkan dengan menyediakannya ke properti feature_filters saat membuat FeatureManager. Jika filter fitur kustom memerlukan konteks apa pun, filter tersebut dapat diteruskan saat memanggil is_enabled menggunakan kwargs.

Filter atribut alias

Saat filter fitur didaftarkan untuk bendera fitur, nama filter digunakan sebagai alias secara default.

Pengidentifikasi untuk filter fitur dapat diganti dengan menggunakan @FeatureFilter.alias("MyFilter"). Filter fitur dapat didekorasi dengan atribut ini untuk mendeklarasikan nama yang harus digunakan dalam konfigurasi untuk mereferensikan filter fitur ini dalam bendera fitur.

Filter fitur yang hilang

Jika fitur dikonfigurasi untuk diaktifkan untuk filter fitur tertentu dan filter fitur tersebut tidak terdaftar, ValueError pengecualian dinaikkan saat fitur dievaluasi.

Filter fitur bawaan

Ada dua filter fitur yang disertakan FeatureManagement dengan paket: TimeWindowFilter, dan TargetingFilter.

Masing-masing filter fitur bawaan memiliki parameternya sendiri. Berikut adalah daftar filter fitur bersama dengan contoh.

Microsoft.TimeWindow

Filter ini menyediakan kemampuan untuk mengaktifkan fitur berdasarkan jendela waktu. Jika hanya End ditentukan, fitur dipertimbangkan hingga waktu tersebut. Jika hanya Start ditentukan, fitur dipertimbangkan di semua titik setelah waktu tersebut.

"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

Filter ini menyediakan kemampuan untuk mengaktifkan fitur untuk audiens target. Penjelasan mendalam tentang penargetan dijelaskan di bagian penargetan di bawah ini. Parameter filter mencakup Audience objek yang menjelaskan pengguna, grup, pengguna/grup yang dikecualikan, dan persentase default dari basis pengguna yang harus memiliki akses ke fitur tersebut. Setiap objek grup yang tercantum di bagian Groups juga harus menentukan persentase anggota grup apa yang harus memiliki akses. Jika pengguna ditentukan di bagian Exclusion , baik secara langsung atau jika pengguna berada dalam grup yang dikecualikan, fitur dinonaktifkan. Jika tidak, jika pengguna ditentukan di Users bagian secara langsung, atau jika pengguna berada dalam persentase yang disertakan dari salah satu peluncuran grup, atau jika pengguna termasuk dalam persentase peluncuran default, pengguna tersebut akan mengaktifkan fitur tersebut.

"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"
                    ]
                }
            }
        }
    }
]

Penargetan

Penargetan adalah strategi manajemen fitur yang memungkinkan pengembang untuk secara progresif meluncurkan fitur baru ke basis pengguna mereka. Strategi ini dibangun berdasarkan konsep menargetkan sekumpulan pengguna yang dikenal sebagai audiens target. Audiens terdiri dari pengguna tertentu, grup, pengguna/grup yang dikecualikan, dan persentase yang ditunjuk dari seluruh basis pengguna. Grup yang disertakan dalam audiens dapat dipecah lebih jauh ke dalam persentase dari total anggota mereka.

Langkah-langkah berikut menunjukkan contoh peluncuran progresif untuk fitur 'Beta' baru:

  1. Pengguna individu Jeff dan Alicia diberikan akses ke Beta.
  2. Pengguna lain, Mark, meminta untuk ikut serta dan disertakan.
  3. Dua puluh persen dari grup yang dikenal sebagai pengguna "Ring1" disertakan dalam Beta.
  4. Jumlah pengguna "Ring1" yang termasuk dalam Beta terbentur hingga 100 persen.
  5. Lima persen dari basis pengguna disertakan dalam Beta.
  6. Persentase peluncuran terbentur hingga 100 persen dan fitur ini sepenuhnya diluncurkan.

Strategi untuk meluncurkan fitur ini dibangun ke dalam pustaka melalui filter fitur Microsoft.Targeting yang disertakan.

Menargetkan pengguna

Pengguna dapat ditentukan langsung dalam is_enabled panggilan atau TargetingContext dapat digunakan untuk menentukan pengguna dan grup opsional.

# 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"]))

Menargetkan pengecualian

Saat menentukan audiens, pengguna dan grup dapat dikecualikan dari audiens. Pengecualian berguna saat fitur diluncurkan ke sekelompok pengguna, tetapi beberapa pengguna atau grup perlu dikecualikan dari peluncuran. Pengecualian ditentukan dengan menambahkan daftar pengguna dan grup ke Exclusion properti audiens.

"Audience": {
    "Users": [
        "Jeff",
        "Alicia"
    ],
    "Groups": [
        {
            "Name": "Ring0",
            "RolloutPercentage": 100
        }
    ],
    "DefaultRolloutPercentage": 0,
    "Exclusion": {
        "Users": [
            "Mark"
        ]
    }
}

Dalam contoh di atas, fitur diaktifkan untuk pengguna bernama Jeff dan Alicia. Ini juga diaktifkan untuk pengguna dalam grup bernama Ring0. Namun, jika pengguna diberi nama Mark, fitur dinonaktifkan, terlepas dari apakah mereka berada dalam grup Ring0 atau tidak. Pengecualian lebih diprioritaskan daripada filter penargetan lainnya.

Varian

Ketika fitur baru ditambahkan ke aplikasi, mungkin ada saatnya ketika fitur memiliki beberapa opsi desain yang diusulkan berbeda. Solusi umum untuk memutuskan desain adalah beberapa bentuk pengujian A/B. Pengujian A/B melibatkan penyediaan versi fitur yang berbeda ke berbagai segmen basis pengguna dan memilih versi berdasarkan interaksi pengguna. Dalam pustaka ini, fungsionalitas ini diaktifkan dengan mewakili konfigurasi fitur yang berbeda dengan varian.

Varian memungkinkan bendera fitur menjadi lebih dari bendera aktif/nonaktif sederhana. Varian mewakili nilai bendera fitur yang dapat berupa string, angka, boolean, atau bahkan objek konfigurasi. Bendera fitur yang menyatakan varian harus menentukan dalam keadaan apa setiap varian harus digunakan, yang tercakup dalam detail yang lebih besar di bagian Mengalokasikan varian .

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

Mendapatkan varian

Untuk setiap fitur, varian dapat diambil menggunakan FeatureManagermetode 's get_variant .

…
variant = print(feature_manager.get_variant("TestVariants", TargetingContext(user_id="Adam"))

variantConfiguration = variant.configuration;

// Do something with the resulting variant and its configuration

Varian yang dikembalikan tergantung pada pengguna yang saat ini sedang dievaluasi, dan informasi tersebut diperoleh dari instans TargetingContext.

Deklarasi bendera fitur varian

Dibandingkan dengan bendera fitur normal, bendera fitur varian memiliki dua properti lagi: variants dan allocation. Properti variants adalah array yang berisi varian yang ditentukan untuk fitur ini. Properti allocation menentukan bagaimana varian ini harus dialokasikan untuk fitur tersebut. Sama seperti mendeklarasikan bendera fitur normal, Anda dapat menyiapkan bendera fitur varian dalam file JSON. Berikut adalah contoh bendera fitur varian.

{
    "feature_management": {
        "feature_flags": [
            {
                "id": "MyVariantFeatureFlag",
                "enabled": true,
                "allocation": {
                    "default_when_enabled": "Small",
                    "group": [
                        {
                            "variant": "Big",
                            "groups": [
                                "Ring1"
                            ]
                        }
                    ]
                },
                "variants": [
                    { 
                        "name": "Big"
                    },  
                    { 
                        "name": "Small"
                    } 
                ]
            }
        ]
    }
}

Menentukan varian

Setiap varian memiliki dua properti: nama dan konfigurasi. Nama ini digunakan untuk merujuk ke varian tertentu, dan konfigurasinya adalah nilai varian tersebut. Konfigurasi dapat diatur menggunakan configuration_value properti . configuration_value adalah konfigurasi sebaris yang dapat berupa string, angka, boolean, atau objek konfigurasi. Jika configuration_value tidak ditentukan, properti varian Configuration yang dikembalikan adalah None.

Daftar semua varian yang mungkin ditentukan untuk setiap fitur di variants bawah properti .

{
    "feature_management": {
        "feature_flags": [
            {
                "id": "MyVariantFeatureFlag",
                "variants": [
                    { 
                        "name": "Big", 
                        "configuration_value": {
                            "Size": 500
                        }
                    },  
                    { 
                        "name": "Small", 
                        "configuration_value": {
                            "Size": 300
                        }
                    } 
                ]
            }
        ]
    }
}

Mengalokasikan varian

Proses pengalokasian varian fitur ditentukan oleh allocation properti fitur.

"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"
    } 
]

Pengaturan allocation fitur memiliki properti berikut:

Properti Deskripsi
default_when_disabled Menentukan varian mana yang harus digunakan saat varian diminta saat fitur dianggap dinonaktifkan.
default_when_enabled Menentukan varian mana yang harus digunakan saat varian diminta saat fitur dianggap diaktifkan dan tidak ada varian lain yang ditetapkan kepada pengguna.
user Menentukan varian dan daftar pengguna yang harus ditetapkan varian tersebut.
group Menentukan varian dan daftar grup. Varian ditetapkan jika pengguna berada di setidaknya salah satu grup.
percentile Menentukan varian dan rentang persentase yang harus sesuai dengan persentase yang dihitung pengguna agar varian tersebut ditetapkan.
seed Nilai yang perhitungan persentasenya percentile didasarkan. Perhitungan persentase untuk pengguna tertentu akan sama di semua fitur jika nilai yang sama seed digunakan. Jika tidak ada seed yang ditentukan, maka seed default dibuat berdasarkan nama fitur.

Jika fitur tidak diaktifkan, pengelola fitur menetapkan varian yang ditandai sebagai default_when_disabled untuk pengguna saat ini, yang dalam Small hal ini.

Jika fitur diaktifkan, manajer fitur memeriksa useralokasi , group, dan percentile untuk menetapkan varian. Untuk contoh khusus ini, jika pengguna yang dievaluasi diberi nama Marsha, dalam grup bernama Ring1, atau pengguna kebetulan jatuh antara persentil ke-0 dan ke-10, maka varian yang ditentukan ditetapkan untuk pengguna. Dalam hal ini, semua pengguna yang ditetapkan akan mengembalikan Big varian. Jika tidak ada alokasi ini yang cocok, pengguna diberi default_when_enabled varian, yaitu Small.

Logika alokasi mirip dengan filter fitur Microsoft.Targeting , tetapi ada beberapa parameter yang ada dalam penargetan yang tidak dalam alokasi, dan sebaliknya. Hasil penargetan dan alokasi tidak terkait.

Mengesampingkan status yang diaktifkan dengan varian

Anda dapat menggunakan varian untuk mengambil alih status bendera fitur yang diaktifkan. Penimpaan memberi varian kesempatan untuk memperluas evaluasi bendera fitur. Saat memanggil is_enabled bendera dengan varian, manajer fitur akan memeriksa apakah varian yang ditetapkan ke pengguna saat ini dikonfigurasi untuk mengambil alih hasilnya. Penimpaan dilakukan menggunakan properti status_overridevarian opsional . Secara default, properti ini diatur ke None, yang berarti varian tidak memengaruhi apakah bendera dianggap diaktifkan atau dinonaktifkan. Pengaturan status_override untuk Enabled memungkinkan varian, saat dipilih, untuk mengambil alih bendera yang akan diaktifkan. Pengaturan status_override untuk Disabled menyediakan fungsionalitas yang berlawanan, oleh karena itu menonaktifkan bendera saat varian dipilih. Fitur dengan status enabledfalse tidak dapat ditimpa.

Jika Anda menggunakan bendera fitur dengan varian biner, status_override properti dapat membantu. Ini memungkinkan Anda untuk terus menggunakan API seperti is_enabled dalam aplikasi Anda, sekaligus mendapat manfaat dari fitur baru yang dilengkapi dengan varian, seperti alokasi persentil dan benih.

{
    "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"
        }
    ]
}

Dalam contoh di atas, fitur selalu diaktifkan. Jika pengguna saat ini berada dalam rentang persentil terhitung 10 hingga 20, maka On varian dikembalikan. Jika tidak, Off varian dikembalikan dan karena status_override sama dengan Disabled, fitur sekarang akan dianggap dinonaktifkan.

telemetri

Ketika perubahan bendera fitur disebarkan, sering kali penting untuk menganalisis efeknya pada aplikasi. Misalnya, berikut adalah beberapa pertanyaan yang mungkin muncul:

  • Apakah bendera saya diaktifkan/dinonaktifkan seperti yang diharapkan?
  • Apakah pengguna yang ditargetkan mendapatkan akses ke fitur tertentu seperti yang diharapkan?
  • Varian mana yang dilihat pengguna tertentu?

Jenis pertanyaan ini dapat dijawab melalui emisi dan analisis peristiwa evaluasi bendera fitur. Pustaka ini secara opsional memungkinkan AzureMonitor telemetri pelacakan selama evaluasi bendera fitur melalui OpenTelemetry.

Mengaktifkan telemetri

Secara default, bendera fitur tidak memiliki telemetri yang dipancarkan. Untuk menerbitkan telemetri untuk bendera fitur tertentu, bendera HARUS menyatakan bahwa telemetri diaktifkan untuk emisi telemetri.

Untuk bendera fitur yang ditentukan dalam json, mengaktifkan dilakukan dengan menggunakan telemetry properti .

{
    "feature_management": {
        "feature_flags": [
            {
                "id": "MyFeatureFlag",
                "enabled": true,
                "telemetry": {
                    "enabled": true
                }
            }
        ]
    }
}

Cuplikan di atas mendefinisikan bendera fitur bernama MyFeatureFlag yang diaktifkan untuk telemetri. Properti telemetry objek enabled diatur ke true. Nilai enabled properti harus menerbitkan true telemetri untuk bendera.

Bagian telemetry bendera fitur memiliki properti berikut:

Properti Deskripsi
enabled Menentukan apakah telemetri harus diterbitkan untuk bendera fitur.
metadata Kumpulan pasangan kunci-nilai, yang dimodelkan sebagai kamus, yang dapat digunakan untuk melampirkan metadata kustom tentang bendera fitur ke peristiwa evaluasi.

Selain itu, saat membuat FeatureManager, panggilan balik harus didaftarkan untuk menangani peristiwa telemetri. Panggilan balik ini dipanggil setiap kali bendera fitur dievaluasi dan telemetri diaktifkan untuk bendera tersebut.

feature_manager = FeatureManager(feature_flags, on_feature_evaluated=publish_telemetry)

Telemetri Application Insights

Pustaka manajemen fitur menyediakan penerbit telemetri bawaan yang mengirim data evaluasi bendera fitur ke Application Insights. Untuk mengaktifkan Application Insights, pustaka manajemen fitur dapat diinstal dengan Azure Monitor melalui pip install FeatureManagement[AzureMonitor]. Perintah ini menginstal azure-monitor-events-extension paket, yang digunakan untuk menata telemetri ke Application Insights menggunakan OpenTelemetry.

Catatan

Paket azure-monitor-events-extension hanya menambahkan telemetri ke alur Open Telemetry. Mendaftarkan Application Insights masih diperlukan.

from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor(
        connection_string="InstrumentationKey=00000000-0000-0000-0000-000000000000"
    )

Penerbitan telemetri kustom

Karena panggilan balik telemetri adalah fungsi, itu dapat disesuaikan untuk menerbitkan telemetri ke tujuan yang diinginkan. Misalnya, telemetri dapat diterbitkan ke layanan pengelogan, database, atau layanan telemetri kustom.

Saat bendera fitur dievaluasi dan telemetri diaktifkan, pengelola fitur memanggil panggilan balik telemetri dengan EvaluationEvent parameter . EvaluationEvent berisi properti berikut:

Tag Deskripsi
feature Bendera fitur yang digunakan.
user ID pengguna yang digunakan untuk penargetan.
enabled Apakah bendera fitur dievaluasi sebagai diaktifkan.
Variant Varian yang ditetapkan.
VariantAssignmentReason Alasan mengapa varian ditetapkan.

Langkah berikutnya

Untuk mempelajari cara menggunakan bendera fitur di aplikasi Anda, lanjutkan ke mulai cepat berikut.

Untuk mempelajari cara menggunakan filter fitur, lanjutkan ke tutorial berikut.