System Error Resolution Guide

Detailed explanation of troubleshooting methods for various errors occurring in the A2 system.

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 Calling SSP

If a No Content response is received when sending an ad request from the SSP (Supply Side Platform) to a media placement, it may indicate an issue with the assignment or settings of the placement. At least one active assignment must be published for the content to display correctly. Follow the steps below to ensure the placement is configured correctly and to avoid No Content responses:

  1. Log in to the Admin page with the Retailer Account that created the placement.
  2. Navigate to the Placement menu on the Admin dashboard.
  3. Select the placement you want to check.
  4. On the selected placement page, verify that there is at least one assignment marked as Published.

If the placement is not linked to any assignments, or if all linked assignments are inactive (e.g., if all campaigns registered in the media have exhausted their budgets or reached their end dates and thus have been marked as completed), the ad request will not be able to retrieve content, resulting in a No Content response. Ensure that each placement has active, published assignments linked to it for ads to display 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.