docker api
This commit is contained in:
parent
b6a86b5401
commit
4f41e275d6
836 changed files with 262259 additions and 4 deletions
32
main.go
32
main.go
|
@ -2,23 +2,43 @@ package main
|
|||
|
||||
import (
|
||||
"bufio"
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
|
||||
"net/http"
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/client"
|
||||
)
|
||||
|
||||
const COUNTER_SLOTS = 20
|
||||
|
||||
func main() {
|
||||
containerName, ok := os.LookupEnv("CONTAINER_NAME")
|
||||
if !ok {
|
||||
log.Fatalf("unable to read CONTAINER_NAME")
|
||||
}
|
||||
|
||||
defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"}
|
||||
cli, err := client.NewClient("unix:///var/run/docker.sock", "v1.44", nil, defaultHeaders)
|
||||
if err != nil {
|
||||
log.Fatalf("unread: %s", err)
|
||||
}
|
||||
logs, err := cli.ContainerLogs(context.TODO(), containerName, types.ContainerLogsOptions{})
|
||||
if err != nil {
|
||||
log.Fatalf("unread: %s", err)
|
||||
}
|
||||
defer logs.Close()
|
||||
|
||||
counter := NewCounter()
|
||||
go counter.ScanStdin()
|
||||
go counter.Scan(logs)
|
||||
|
||||
http.HandleFunc("/", counter.MetricsHandler)
|
||||
err := http.ListenAndServe(":8080", nil)
|
||||
err = http.ListenAndServe(":8080", nil)
|
||||
log.Fatalf("unable to listen: %s", err)
|
||||
}
|
||||
|
||||
|
@ -44,8 +64,12 @@ func (c *Counter) MetricsHandler(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
func (c *Counter) ScanStdin() {
|
||||
c.Scan(os.Stdin)
|
||||
}
|
||||
|
||||
func (c *Counter) Scan(in io.Reader) {
|
||||
matcher := regexp.MustCompile(`/hls/stream-([0-9]*).ts`)
|
||||
scanner := bufio.NewScanner(os.Stdin)
|
||||
scanner := bufio.NewScanner(in)
|
||||
scanner.Split(bufio.ScanLines)
|
||||
|
||||
for scanner.Scan() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue