This feature is available for all plans:

  • Developer: 10k Logs / Month with 3 day Log Retention
  • Production: 100k Logs / Month + $9 for additional 100k with 30 Days Log Retention
  • Enterprise: Unlimited

Each log entry provides useful data such as the timestamp, request type, LLM used, tokens generated, and cost. For multimodal models, Logs will also show the image sent with vision/image models, as well as the image generated.

By clicking on an entry, a side panel opens up, revealing the entire raw data with the request and response objects.

This detailed log can be invaluable when troubleshooting issues or understanding specific interactions. It provides full transparency into each request and response, enabling you to see exactly what data was sent and received.

Share Logs with Teammates

Each log on Portkey has a unique URL. You can copy the link from the address bar and directly share it with anyone in your org.

Request Status Guide

The Status column on the Logs page gives you a snapshot of the gateway activity for every request.

Portkey’s gateway features—Cache, Retries, Fallback, Loadbalance, Conditional Routing—are all tracked here with their exact states (disabled, triggered, etc.), making it a breeze to monitor and optimize your usage.

Common Queries Answered:

  • Is the cache working?: Enabled caching but unsure if it’s active? The Status column will confirm it for you.
  • How many retries happened?: Curious about the retry count for a successful request? See it in a glance.
  • Fallback and Loadbalance: Want to know if load balance is active or which fallback option was triggered? See it in a glance.
Option🔴 Inactive State🟢 Possible Active States
CacheCache DisabledCache Miss,Cache Refreshed,Cache Hit,Cache Semantic Hit
RetryRetry Not TriggeredRetry Success on Tries,Retry Failed
FallbackFallback DisabledFallback Active
LoadbalanceLoadbalancer DisabledLoadbalancer Active

Manual Feedback

As you’re viewing logs, you can also add manual feedback on the logs to be analysed and filtered later. This data can be viewed on the feedback analytics dashboards.

Configs & Prompt IDs in Logs

If your request has an attached Config or if it’s originating from a prompt template, you can see the relevant Config or Prompt IDs separately in the log’s details on Portkey. And to dig deeper, you can just click on the IDs and Portkey will take you to the respective Config or Prompt playground where you can view the full details.

Debug Requests with Log Replay

You can rerun any buggy request with just one click, straight from the log details page. The Replay button opens your request in a fresh prompt playground where you can rerun the request and edit it right there until it works.

Replay button will be inactive for a log in the following cases:

  1. If the request is sent to any endpoint other than /chat/completions, /completions, /embeddings
  2. If the virtual key used in the log is archived on Portkey
  3. If the request originates from a prompt template which is called from inside a Config target

DO NOT TRACK

The DO NOT TRACK option allows you to process requests without logging the request and response data. When enabled, only high-level statistics like tokens used, cost, and latency will be recorded, while the actual request and response content will be omitted from the logs.

This feature is particularly useful when dealing with sensitive data or complying with data privacy regulations. It ensures that you can still capture critical operational metrics without storing potentially sensitive information in your logs.

To enable DO NOT TRACK for a specific request, set the debug flag to false when instantiating your Portkey or OpenAI client, or include the x-portkey-debug:false header with your request.

import Portkey from 'portkey-ai';

const portkey = new Portkey({
    virtualKey: "OPENAI_VIRTUAL_KEY",
    apiKey: "PORTKEY_API_KEY",
    debug: false
})

async function main(){
    const response = await portkey.chat.completions.create({
        messages: [{ role: 'user', content: '1729' }],
        model: 'gpt-4',
    });
    console.log(response.choices[0].message?.content)
}

main()

Side-by-side comparison on how a debug:false request will be logged