2017-07-21 3 views
0

Malheureusement, il n'existe pas d'API officielle Go Datadog. J'utilise actuellement celui-ci à la place https://github.com/zorkian/go-datadog-api. Datadog a forké la première version et recommandé de l'utiliser.Envoyer un événement à Datadog

Je suis en mesure de se connecter à mon tableau de bord:

client := datadog.NewClient("...", "...") 

    dash, err := client.GetDashboard(...) 
    if err != nil { 
     log.Fatalf("fatal: %s\n", err) 
    } 

Mais je ne sais pas comment envoyer créer/suivi d'un événement. C'est mon approche actuelle, mais si elle échoue gravement.

c := datadog.Client{} 
    title := "Abc" 
    e := datadog.Event{ Title: &title } 
    c.PostEvent(&e) 

De ma compréhension et la documentation manquante, je dois remplir certaines de ces variables dans ce struct (https://github.com/zorkian/go-datadog-api/blob/master/events.go)

// Event is a single event. 
// all fields will be filled out. 
type Event struct { 
    Id   *int  `json:"id,omitempty"` 
    Title  *string `json:"title,omitempty"` 
    Text  *string `json:"text,omitempty"` 
    Time  *int  `json:"date_happened,omitempty"` // UNIX time. 
    Priority *string `json:"priority,omitempty"` 
    AlertType *string `json:"alert_type,omitempty"` 
    Host  *string `json:"host,omitempty"` 
    Aggregation *string `json:"aggregation_key,omitempty"` 
    SourceType *string `json:"source_type_name,omitempty"` 
    Tags  []string `json:"tags,omitempty"` 
    Url   *string `json:"url,omitempty"` 
    Resource *string `json:"resource,omitempty"` 
    EventType *string `json:"event_type,omitempty"` 
} 

Pouvez-vous me aider s'il vous plaît cela?

Répondre

1

Dans le code affiché:

c := datadog.Client{} 

Cela semble être la création d'un objet client vide.

Ne devriez-vous pas créer un client avec vos clés en utilisant datadog.NewClient("...", "...") comme dans le premier extrait de code que vous avez publié?

c := datadog.NewClient("...", "...") 

En outre, vous devriez vérifier l'erreur renvoyée car cela vous donnera plus de conseils pour résoudre le problème:

_, err := c.PostEvent(&e) 
if err != nil { 
    log.Fatalf("fatal: %s\n", err) 
} 

`