def test_datatog_when_generate_event_data_with_with_missing_env_then_success(): # Given environment log = "some log data" email = "*****@*****.**" env = None data_dog = DataDogWrapper(base_url="http://test.com", api_key='123key') # When event_data = data_dog.generate_event_data(log=log, email=email, environment_name=env) # Then expected_event_text = f"{log} by user {email}" assert event_data['text'] == expected_event_text assert len(event_data['tags']) == 1 assert event_data['tags'][0] == f"env:{env}"
def test_datatog_when_generate_event_data_with_with_missing_values_then_success(): # Given no log or email data log = None email = None env = "test" data_dog = DataDogWrapper(base_url="http://test.com", api_key="123key") # When event_data = data_dog.generate_event_data( log=log, email=email, environment_name=env ) # Then expected_event_text = f"{log} by user {email}" assert event_data["text"] == expected_event_text assert len(event_data["tags"]) == 1 assert event_data["tags"][0] == f"env:{env}"
def test_datatog_when_generate_event_data_with_correct_values_then_success(): # Given log = "some log data" email = "*****@*****.**" env = "test" data_dog = DataDogWrapper(base_url="http://test.com", api_key="123key") # When event_data = data_dog.generate_event_data( log=log, email=email, environment_name=env ) # Then expected_event_text = f"{log} by user {email}" assert event_data["text"] == expected_event_text assert len(event_data["tags"]) == 1 assert event_data["tags"][0] == "env:" + env
def test_datadog_initialized_correctly(): # Given api_key = '123key' base_url = "http://test.com" # When initialized data_dog = DataDogWrapper(base_url=base_url, api_key=api_key) # Then expected_url = f"{base_url}{EVENTS_API_URI}?api_key={api_key}" assert data_dog.url == expected_url
def send_audit_log_event_to_datadog(sender, instance, **kwargs): integration = { "name": "DataDog", "attr": "data_dog_config", } data_dog_config = _send_audit_log_event_verification(instance, integration) if not data_dog_config: return data_dog = DataDogWrapper(base_url=data_dog_config.base_url, api_key=data_dog_config.api_key) _track_event_async(instance, data_dog)
def send_audit_log_event_to_datadog(sender, instance, **kwargs): if not instance.project: logger.warning("Audit log missing project, not sending data to DataDog.") return if not hasattr(instance.project, "data_dog_config"): logger.debug( "No datadog integration configured for project %s" % instance.project.id ) return # Only handle Feature related changes if instance.related_object_type not in [ RelatedObjectType.FEATURE.name, RelatedObjectType.FEATURE_STATE.name, RelatedObjectType.SEGMENT.name, ]: logger.debug( "Ignoring none Flag audit event %s for datadog" % instance.related_object_type ) return data_dog_config = instance.project.data_dog_config data_dog = DataDogWrapper( base_url=data_dog_config.base_url, api_key=data_dog_config.api_key ) event_data = data_dog.generate_event_data( log=instance.log, email=instance.author.email if instance.author else "", environment_name=instance.environment.name.lower() if instance.environment else "", ) data_dog.track_event_async(event=event_data)