Skip to content
This repository was archived by the owner on Oct 29, 2021. It is now read-only.

Commit 71fae14

Browse files
committed
cleans up influxdb example
1 parent 1f65b73 commit 71fae14

File tree

1 file changed

+35
-7
lines changed
  • examples/cmd/webapp-influxdb

1 file changed

+35
-7
lines changed

examples/cmd/webapp-influxdb/main.go

+35-7
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
11
package main
22

33
import (
4+
"fmt"
45
"log"
56
"net/http"
7+
"time"
68

79
"sourcegraph.com/sourcegraph/appdash"
8-
"sourcegraph.com/sourcegraph/appdash/examples/cmd/webapp"
910
"sourcegraph.com/sourcegraph/appdash/httptrace"
1011
"sourcegraph.com/sourcegraph/appdash/traceapp"
1112

1213
"github.com/codegangsta/negroni"
1314
"github.com/gorilla/context"
1415
"github.com/gorilla/mux"
15-
influxdb "github.com/influxdb/influxdb/cmd/influxd/run"
16+
17+
influxDBServer "github.com/influxdb/influxdb/cmd/influxd/run"
1618
)
1719

1820
const CtxSpanID = 0
1921

2022
var collector appdash.Collector
2123

2224
func main() {
23-
conf, err := influxdb.NewDemoConfig()
25+
conf, err := influxDBServer.NewDemoConfig()
2426
if err != nil {
2527
log.Fatalf("failed to create influxdb config, error: %v", err)
2628
}
27-
store, err := appdash.NewInfluxDBStore(conf, &influxdb.BuildInfo{})
29+
store, err := appdash.NewInfluxDBStore(conf, &influxDBServer.BuildInfo{})
2830
if err != nil {
2931
log.Fatalf("failed to create influxdb store, error: %v", err)
3032
}
33+
defer store.Close()
3134
tapp := traceapp.New(nil)
3235
tapp.Store = store
3336
tapp.Queryer = store
@@ -43,10 +46,35 @@ func main() {
4346
},
4447
})
4548
router := mux.NewRouter()
46-
router.HandleFunc("/", webapp.Home)
47-
router.HandleFunc("/endpoint", webapp.Endpoint)
49+
router.HandleFunc("/", Home)
50+
router.HandleFunc("/endpoint", Endpoint)
4851
n := negroni.Classic()
49-
n.Use(negroni.HandlerFunc(tracemw)) // Register appdash's HTTP middleware.
52+
n.Use(negroni.HandlerFunc(tracemw))
5053
n.UseHandler(router)
5154
n.Run(":8699")
5255
}
56+
57+
func Home(w http.ResponseWriter, r *http.Request) {
58+
span := context.Get(r, CtxSpanID).(appdash.SpanID)
59+
httpClient := &http.Client{
60+
Transport: &httptrace.Transport{
61+
Recorder: appdash.NewRecorder(span, collector),
62+
SetName: true,
63+
},
64+
}
65+
for i := 0; i < 3; i++ {
66+
resp, err := httpClient.Get("http://localhost:8699/endpoint")
67+
if err != nil {
68+
log.Println("/endpoint:", err)
69+
continue
70+
}
71+
resp.Body.Close()
72+
}
73+
fmt.Fprintf(w, `<p>Three API requests have been made!</p>`)
74+
fmt.Fprintf(w, `<p><a href="http://localhost:8700/traces/%s" target="_">View the trace (ID:%s)</a></p>`, span.Trace, span.Trace)
75+
}
76+
77+
func Endpoint(w http.ResponseWriter, r *http.Request) {
78+
time.Sleep(200 * time.Millisecond)
79+
fmt.Fprintf(w, "Slept for 200ms!")
80+
}

0 commit comments

Comments
 (0)