This document provides solutions to common issues that may arise when using A2. Users can use this document to easily check system settings and limitations, quickly diagnose issues, and maintain operational stability.

Checking License Limits

A2 applies various limitations, such as API limits, based on the user’s license tier. To view the applied limitations and current usage, log in to the Admin page with an administrator account, click the Settings menu at the bottom of the right sidebar, and you will see a screen displaying the current settings and usage.

Guide for Resolving No Content Responses When Requesting Ads

If you receive a No Content response from the Decision API when sending an ad request to a placement, there may be an issue with the allocation or the placement settings. To properly serve content, at least one allocation must be in a published state on that placement. Follow the steps below to ensure the placement is configured correctly and avoid No Content responses:

  1. Go to Placement menu and select the placement you want to check.
  2. On the selected placement page, verify that there is at least one allocation in the Published state.

If the placement has no allocations associated with it, or if all associated allocations are in an unpublished state (for example, when all campaigns in that placement have run out of budget or reached their end date and thus transitioned to a completed state), the ad request cannot retrieve content, resulting in a No Content response. Each placement must have an active, published allocation linked to it in order for ads to be served correctly.

Troubleshooting in an On-Premise Environment

In an on-premise environment, you can directly access the server to diagnose and resolve issues. This section focuses on troubleshooting methods that can be performed by physically accessing the server. By analyzing local logs and other resources, you can respond more quickly and in greater detail.

Supervisord

A2 uses supervisord to manage processes.

If a Docker container is marked as Unhealthy, it indicates that there is an issue with one of the processes managed by Supervisord. In such cases, you can diagnose the problem by checking the logs recorded in /opt/supervisord.log. For example, if a specific process is marked as FATAL, it means that the process has exited and failed to restart. You can identify the exact cause of the issue by reviewing the logs.

For general process management, you can access supervisorctl as follows:

root@5f2769832e02:/opt# supervisorctl -s http://localhost:23231 -u a2 -p a2
a2-adm-backend RUNNING pid 74, uptime 2 days, 5:13:37
a2-docs RUNNING pid 75, uptime 2 days, 5:13:37
a2-dsp RUNNING pid 76, uptime 2 days, 5:13:37
a2-ssp RUNNING pid 77, uptime 2 days, 5:13:37
a2_sinker RUNNING pid 78, uptime 2 days, 5:13:37
event_stream RUNNING pid 85, uptime 2 days, 5:13:37
nginx RUNNING pid 96, uptime 2 days, 5:13:37
redis RUNNING pid 97, uptime 2 days, 5:13:37
vector RUNNING pid 98, uptime 2 days, 5:13:37
supervisor> restart <program_name>

Key supervisord commands:

  • status: Check the status of all processes.
  • start <program_name>: Start a specific program.
  • stop <program_name>: Stop a specific program.
  • restart <program_name>: Restart a specific program.
  • tail <program_name>: View the log of a specific program in real-time.

For more detailed commands, enter help or check the official supervisord documentation.

Process Logs

A2 consists of the following major components, and their logs can be found at these paths:

  1. ADM (Advertising Manager)
  • /var/log/nginx.log: ADM frontend related logs
  • /var/log/a2-adm-backend.log: ADM backend related logs
  1. DMP (Data Management Platform)
  • /var/log/a2-sinker.log: Data collection related logs
  • /var/log/event_stream.log: Event streaming related logs
  • /var/log/redis.log: Event streaming related logs
  • /var/log/vector.log: Log and metric collector related logs
  1. SSP/DSP (Supply-Side Platform / Demand-Side Platform)
  • /var/log/a2-ssp.log: SSP related logs
  • /var/log/a2-dsp.log: DSP related logs
  1. Modeling
  • /var/log/a2-train.log: Machine learning model training related logs

Please inquire via Slack with log snippets.