Skip to content

Commit

Permalink
Add metadata (#8)
Browse files Browse the repository at this point in the history
* ADD metadata

* FIX example
  • Loading branch information
ykriger-newrelic committed May 9, 2023
1 parent 24e76f5 commit 9138540
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
4 changes: 3 additions & 1 deletion examples/example.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import openai
from nr_openai_observability import monitor

monitor.initialization()
monitor.initialization(
metadata={"environment": "development"}
)

openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Completion.create(
Expand Down
17 changes: 15 additions & 2 deletions src/nr_openai_observability/monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import logging
import os
import time
from typing import Optional
from typing import Any, Dict, Optional

import openai
from newrelic_telemetry_sdk import Event, EventBatch, EventClient, Harvester
Expand Down Expand Up @@ -57,6 +57,15 @@ def _set_client_host(
"EVENT_CLIENT_HOST", EventClient.HOST
)

def _set_metadata(
self,
metadata: Dict[str, Any] = {},
):
self.metadata = metadata

if not isinstance(metadata, Dict) and metadata is not None:
raise TypeError("metadata instance type must be Dict[str, Any]")

def _log(self, msg: str):
if self.use_logger:
logger.info(msg)
Expand All @@ -66,9 +75,11 @@ def _log(self, msg: str):
def start(
self,
license_key: Optional[str] = None,
metadata: Dict[str, Any] = {},
event_client_host: Optional[str] = None,
):
self._set_license_key(license_key)
self._set_metadata(metadata)
self._set_client_host(event_client_host)
self._start()

Expand All @@ -91,6 +102,7 @@ def _start(self):
atexit.register(self.event_harvester.stop)

def record_event(self, event_dict: dict, table: str = EventName):
event_dict.update(self.metadata)
event = Event(table, event_dict)
self.event_batch.record(event)

Expand Down Expand Up @@ -150,9 +162,10 @@ def flatten_dict(dd, separator=".", prefix="", index=""):

def initialization(
license_key: Optional[str] = None,
metadata: Dict[str, Any] = {},
event_client_host: Optional[str] = None,
):
monitor.start(license_key, event_client_host)
monitor.start(license_key, metadata, event_client_host)
perform_patch()


Expand Down
4 changes: 3 additions & 1 deletion tests/test_openai_patch.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@


def test_patch_response(openai_object):
monitor.initialization()
monitor.initialization(
metadata={"test": "test"}
)
openai.api_key = (
"some-key" # os.getenv("OPENAI_API_KEY")
)
Expand Down

0 comments on commit 9138540

Please sign in to comment.