# Прапорці функцій

LLMS index: [llms.txt](/llms.txt)

---

Демо надає кілька прапорців функцій, які ви можете використовувати для імітації різних сценаріїв. Ці прапорці керуються за допомогою [`flagd`](https://flagd.dev), простого сервісу прапорців функцій, який підтримує [OpenFeature](https://openfeature.dev).

Значення прапорців можна змінювати через інтерфейс користувача, доступний за адресою <http://localhost:8080/feature> під час запуску демо. Зміни значень через цей інтерфейс будуть відображені в сервісі flagd.

Є два варіанти зміни прапорців функцій через інтерфейс користувача:

- **Основний вигляд**: Зручний для користувача вигляд, у якому можна вибрати та зберегти стандартні варіанти (ті самі опції, які потрібно змінити при налаштуванні через сирий файл) для кожного функціонального прапорця. Наразі основний вигляд не підтримує фракційне таргетування.

- **Розширений вигляд**: Вигляд, у якому завантажується сирий файл конфігурації JSON і може бути відредагований в оглядачі. Цей вигляд надає гнучкість, яка приходить з редагуванням сирого файлу JSON, але також забезпечує перевірку схеми, щоб гарантувати, що JSON є дійсним і що надані значення конфігурації є правильними.

## Реалізовані прапорці функцій {#implemented-feature-flags}

| Прапорець функції                   | Сервіс(и)       | Опис                                                                                                                                                         |
| ----------------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `adServiceFailure`                  | Ad              | Генерувати помилку для `GetAds` 1/10 разів                                                                                                                   |
| `adServiceManualGc`                 | Ad              | Викликати повне ручне збирання сміття в сервісі оголошень                                                                                                    |
| `adServiceHighCpu`                  | Ad              | Викликати високе навантаження на процесор у сервісі оголошень. Якщо ви хочете продемонструвати обмеження процесора, встановіть обмеження ресурсів процесора  |
| `cartServiceFailure`                | Cart            | Генерувати помилку кожного разу, коли викликається `EmptyCart`                                                                                               |
| `emailMemoryLeak`                   | Email           | Імітувати витік памʼяті в сервісі `email`.                                                                                                                   |
| `llmInaccurateResponse`             | LLM             | Сервіс імітації LLM повертає неточний огляд товару з ідентифікатором `L9ECAV7KIM`.                                                                           |
| `llmRateLimitError`                 | LLM             | Сервіс імітації LLM періодично повертає RateLimitError із кодом статусу HTTP 429.                                                                            |
| `productCatalogFailure`             | Product Catalog | Генерувати помилку для запитів `GetProduct` з ідентифікатором товару: `OLJCESPC7Z`                                                                           |
| `recommendationServiceCacheFailure` | Recommendation  | Створити витік памʼяті через кеш, що зростає експоненційно. Зростання 1.4x, 50% запитів викликають зростання.                                                |
| `paymentServiceFailure`             | Payment         | Генерувати помилку при виклику методу `charge`.                                                                                                              |
| `paymentServiceUnreachable`         | Checkout        | Використовувати неправильну адресу при виклику PaymentService, щоб зробити вигляд, що PaymentService недоступний.                                            |
| `loadgeneratorFloodHomepage`        | Load Generator  | Почати затоплення головної сторінки великою кількістю запитів, налаштовується шляхом зміни JSON flagd на стані.                                              |
| `kafkaQueueProblems`                | Kafka           | Перевантажує чергу Kafka, одночасно вводячи затримку на стороні споживача, що призводить до сплеску затримки.                                                |
| `imageSlowLoad`                     | Frontend        | Використовує впорскування помилок envoy, викликає затримку у завантаженні зображень товарів на фронтенді.                                                    |
| `failedReadinessProbe`              | Cart            | Примусово змушує перевірку готовності завершитися з неналежним статусом, імітуючи стан "NotReady" для пода. Застосовується лише для розгортань у Kubernetes. |

## Сценарій керованого налагодження {#guided-debugging-scenario}

Сценарій `recommendationServiceCacheFailure` має [спеціальний посібник](recommendation-cache/), щоб допомогти зрозуміти, як ви можете усунути витоки памʼяті за допомогою OpenTelemetry.

## Архітектура прапорців функцій {#feature-flags-architecture}

Будь ласка, перегляньте [документацію flagd](https://flagd.dev) для отримання додаткової інформації про те, як працює flagd, а також вебсайт [OpenFeature](https://openfeature.dev) для отримання додаткової інформації про те, як працює OpenFeature, разом з документацією для API OpenFeature.

---

Section pages:

- [Використання метрик та трейсів для діагностування витоків памʼяті](/uk/docs/demo/feature-flags/recommendation-cache/)
