1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-elton

Клонировать/Скачать
server_timing.md 2.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 04.06.2025 23:59 7f2703a
description
Время выполнения HTTP-сервера

Используя elton, можно легко получить время выполнения каждого middleware. После получения статистики времени выполнения, можно легко записать соответствующие статистические данные или добавить их в заголовок Server-Timing HTTP-ответа.

На приведенном ниже скриншоте показано отображение Server-Timing в панели network в Chrome:

package main

import (
	"github.com/vicanso/elton"
	"github.com/vicanso/elton/middleware"
)

func main() {

	e := elton.New()
	e.EnableTrace = true
	e.OnTrace(func(c *elton.Context, traceInfos elton.TraceInfos) {
		serverTiming := string(traceInfos.ServerTiming("elton-"))
		c.SetHeader(elton.HeaderServerTiming, serverTiming)
	})

	entry := func(c *elton.Context) (err error) {
		c.ID = "random id"
		c.NoCache()
		return c.Next()
	}
	e.Use(entry)
	// Установка имени middleware, если не установлено, будет взято из runtime
	// Для общих middleware рекомендуется указывать имя
	e.SetFunctionName(entry, "entry")

	fn := middleware.NewDefaultResponder()
	e.Use(fn)
	e.SetFunctionName(fn, "responder")

	e.GET("/", func(c *elton.Context) (err error) {
		c.Body = &struct {
			Name    string `json:"name,omitempty"`
			Content string `json:"content,omitempty"`
		}{
			"tree.xie",
			"Hello, World!",
		}
		return
	})

	err := e.ListenAndServe(":3000")
	if err != nil {
		panic(err)
	}
}
curl -v 'http://127.0.0.1:3000/'
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1:3000
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Cache-Control: no-cache
< Content-Length: 44
< Content-Type: application/json; charset=utf-8
< Server-Timing: elton-0;dur=0;desc="entry",elton-1;dur=0.03;desc="responder",elton-2;dur=0;desc="main.main.func3"
< Date: Fri, 03 Jan 2020 13:08:50 GMT
<
* Connection #0 to host 127.0.0.1 left intact
{"name":"tree.xie","content":"Hello, World!"}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-elton.git
git@api.gitlife.ru:oschina-mirror/mirrors-elton.git
oschina-mirror
mirrors-elton
mirrors-elton
master