app

package
v0.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Reset uint8 = iota
	Bold
	Faint
	Italic
	Underline
	BlinkSlow
)
View Source
const (
	Black uint8 = iota + 30
	Red
	Green
	Yellow
	Blue
	Magenta
	Cyan
)
View Source
const Version = "v0.0.1"

Variables

View Source
var Conf = Config{
	Port:    8181,
	Targets: map[string]string{"/": "http://localhost:3000"},
	Log: LogConfig{
		Console: LogConsoleConfig{
			Enable: true,
		},
		File: LogFileConfig{
			UseLocalTime: true,
			MaxSize:      100,
			MaxAge:       7,
		},
	},
}
View Source
var (
	ConfigFile = "proxi.yml"
)

Functions

func Fmt

func Fmt(text any, attribute ...uint8) string

func IsInteger

func IsInteger(str string) bool

func IsUUID

func IsUUID(str string) bool

check if str is uuid with minimum cost

func Run

func Run()

Types

type Config

type Config struct {
	Port      int               `yaml:"port"`
	UseStdlib bool              `yaml:"use_stdlib"`
	TargetStr string            `yaml:"-"`
	Targets   map[string]string `yaml:"targets"`
	Log       LogConfig         `yaml:"log"`
	Metric    MetricConfig      `yaml:"metric"`
}

type Ctx

type Ctx struct {
	StartAt     time.Time
	FinishAt    time.Time
	Duration    time.Duration
	Method      string
	EndPoint    string
	PathPrefix  string
	BaseURL     string
	CompleteURL string
	Header      map[string]string
	Body        []byte
	StatusCode  int
	Err         error
}

type LogConfig

type LogConfig struct {
	Console LogConsoleConfig `yaml:"console"`
	File    LogFileConfig    `yaml:"file"`
}

type LogConsoleConfig

type LogConsoleConfig struct {
	Enable                  bool `yaml:"enable"`
	Disable                 bool `yaml:"-"`
	PrintRequestImmediately bool `yaml:"print_request_immediately"`
}

type LogFileConfig

type LogFileConfig struct {
	Enable                 bool   `yaml:"enable"`
	Filename               string `yaml:"filename"`
	UseLocalTime           bool   `yaml:"use_local_time"`
	MaxSize                int    `yaml:"max_size"`
	MaxAge                 int    `yaml:"max_age"`
	MaxBackups             int    `yaml:"max_backups"`
	IncludeRequestHeaders  bool   `yaml:"include_request_headers"`
	IncludeRequestBody     bool   `yaml:"include_request_body"`
	IncludeResponseHeaders bool   `yaml:"include_response_headers"`
	IncludeResponseBody    bool   `yaml:"include_response_body"`
}

type Metric

type Metric struct {
	StartAt time.Time     `json:"start_at"`
	Uptime  time.Duration `json:"uptime"`

	LevelCount         map[string]uint64        `json:"level.count"`
	LevelDurationAvg   map[string]time.Duration `json:"level.duration.avg"`
	LevelDurationMax   map[string]time.Duration `json:"level.duration.max"`
	LevelDurationMin   map[string]time.Duration `json:"level.duration.min"`
	LevelDurationTotal map[string]time.Duration `json:"level.duration.total"`
	LevelLastCall      map[string]time.Time     `json:"level.last_call"`

	StatusCodeCount         map[int]uint64        `json:"status_code.count"`
	StatusCodeDurationAvg   map[int]time.Duration `json:"status_code.duration.avg"`
	StatusCodeDurationMax   map[int]time.Duration `json:"status_code.duration.max"`
	StatusCodeDurationMin   map[int]time.Duration `json:"status_code.duration.min"`
	StatusCodeDurationTotal map[int]time.Duration `json:"status_code.duration.total"`
	StatusCodeLastCall      map[int]time.Time     `json:"status_code.last_call"`

	MethodCount         map[string]uint64        `json:"method.count"`
	MethodDurationAvg   map[string]time.Duration `json:"method.duration.avg"`
	MethodDurationMax   map[string]time.Duration `json:"method.duration.max"`
	MethodDurationMin   map[string]time.Duration `json:"method.duration.min"`
	MethodDurationTotal map[string]time.Duration `json:"method.duration.total"`
	MethodLastCall      map[string]time.Time     `json:"method.last_call"`

	PathPrefixSuccessCount         map[string]uint64        `json:"path_prefix.success.count"`
	PathPrefixSuccessDurationAvg   map[string]time.Duration `json:"path_prefix.success.duration.avg"`
	PathPrefixSuccessDurationMax   map[string]time.Duration `json:"path_prefix.success.duration.max"`
	PathPrefixSuccessDurationMin   map[string]time.Duration `json:"path_prefix.success.duration.min"`
	PathPrefixSuccessDurationTotal map[string]time.Duration `json:"path_prefix.success.duration.total"`
	PathPrefixSuccessLastCall      map[string]time.Time     `json:"path_prefix.success.last_call"`
	PathPrefixWarningCount         map[string]uint64        `json:"path_prefix.warning.count"`
	PathPrefixWarningDurationAvg   map[string]time.Duration `json:"path_prefix.warning.duration.avg"`
	PathPrefixWarningDurationMax   map[string]time.Duration `json:"path_prefix.warning.duration.max"`
	PathPrefixWarningDurationMin   map[string]time.Duration `json:"path_prefix.warning.duration.min"`
	PathPrefixWarningDurationTotal map[string]time.Duration `json:"path_prefix.warning.duration.total"`
	PathPrefixWarningLastCall      map[string]time.Time     `json:"path_prefix.warning.last_call"`
	PathPrefixErrorCount           map[string]uint64        `json:"path_prefix.error.count"`
	PathPrefixErrorDurationAvg     map[string]time.Duration `json:"path_prefix.error.duration.avg"`
	PathPrefixErrorDurationMax     map[string]time.Duration `json:"path_prefix.error.duration.max"`
	PathPrefixErrorDurationMin     map[string]time.Duration `json:"path_prefix.error.duration.min"`
	PathPrefixErrorDurationTotal   map[string]time.Duration `json:"path_prefix.error.duration.total"`
	PathPrefixErrorLastCall        map[string]time.Time     `json:"path_prefix.error.last_call"`
	PathPrefixTotalCount           map[string]uint64        `json:"path_prefix.total.count"`
	PathPrefixTotalDurationAvg     map[string]time.Duration `json:"path_prefix.total.duration.avg"`
	PathPrefixTotalDurationMax     map[string]time.Duration `json:"path_prefix.total.duration.max"`
	PathPrefixTotalDurationMin     map[string]time.Duration `json:"path_prefix.total.duration.min"`
	PathPrefixTotalDurationTotal   map[string]time.Duration `json:"path_prefix.total.duration.total"`
	PathPrefixTotalLastCall        map[string]time.Time     `json:"path_prefix.total.last_call"`

	BaseURLSuccessCount         map[string]uint64        `json:"base_url.success.count"`
	BaseURLSuccessDurationAvg   map[string]time.Duration `json:"base_url.success.duration.avg"`
	BaseURLSuccessDurationMax   map[string]time.Duration `json:"base_url.success.duration.max"`
	BaseURLSuccessDurationMin   map[string]time.Duration `json:"base_url.success.duration.min"`
	BaseURLSuccessDurationTotal map[string]time.Duration `json:"base_url.success.duration.total"`
	BaseURLSuccessLastCall      map[string]time.Time     `json:"base_url.success.last_call"`
	BaseURLWarningCount         map[string]uint64        `json:"base_url.warning.count"`
	BaseURLWarningDurationAvg   map[string]time.Duration `json:"base_url.warning.duration.avg"`
	BaseURLWarningDurationMax   map[string]time.Duration `json:"base_url.warning.duration.max"`
	BaseURLWarningDurationMin   map[string]time.Duration `json:"base_url.warning.duration.min"`
	BaseURLWarningDurationTotal map[string]time.Duration `json:"base_url.warning.duration.total"`
	BaseURLWarningLastCall      map[string]time.Time     `json:"base_url.warning.last_call"`
	BaseURLErrorCount           map[string]uint64        `json:"base_url.error.count"`
	BaseURLErrorDurationAvg     map[string]time.Duration `json:"base_url.error.duration.avg"`
	BaseURLErrorDurationMax     map[string]time.Duration `json:"base_url.error.duration.max"`
	BaseURLErrorDurationMin     map[string]time.Duration `json:"base_url.error.duration.min"`
	BaseURLErrorDurationTotal   map[string]time.Duration `json:"base_url.error.duration.total"`
	BaseURLErrorLastCall        map[string]time.Time     `json:"base_url.error.last_call"`
	BaseURLTotalCount           map[string]uint64        `json:"base_url.total.count"`
	BaseURLTotalDurationAvg     map[string]time.Duration `json:"base_url.total.duration.avg"`
	BaseURLTotalDurationMax     map[string]time.Duration `json:"base_url.total.duration.max"`
	BaseURLTotalDurationMin     map[string]time.Duration `json:"base_url.total.duration.min"`
	BaseURLTotalDurationTotal   map[string]time.Duration `json:"base_url.total.duration.total"`
	BaseURLTotalLastCall        map[string]time.Time     `json:"base_url.total.last_call"`

	EndPointSuccessCount         map[string]uint64        `json:"end_point.success.count"`
	EndPointSuccessDurationAvg   map[string]time.Duration `json:"end_point.success.duration.avg"`
	EndPointSuccessDurationMax   map[string]time.Duration `json:"end_point.success.duration.max"`
	EndPointSuccessDurationMin   map[string]time.Duration `json:"end_point.success.duration.min"`
	EndPointSuccessDurationTotal map[string]time.Duration `json:"end_point.success.duration.total"`
	EndPointSuccessLastCall      map[string]time.Time     `json:"end_point.success.last_call"`
	EndPointWarningCount         map[string]uint64        `json:"end_point.warning.count"`
	EndPointWarningDurationAvg   map[string]time.Duration `json:"end_point.warning.duration.avg"`
	EndPointWarningDurationMax   map[string]time.Duration `json:"end_point.warning.duration.max"`
	EndPointWarningDurationMin   map[string]time.Duration `json:"end_point.warning.duration.min"`
	EndPointWarningDurationTotal map[string]time.Duration `json:"end_point.warning.duration.total"`
	EndPointWarningLastCall      map[string]time.Time     `json:"end_point.warning.last_call"`
	EndPointErrorCount           map[string]uint64        `json:"end_point.error.count"`
	EndPointErrorDurationAvg     map[string]time.Duration `json:"end_point.error.duration.avg"`
	EndPointErrorDurationMax     map[string]time.Duration `json:"end_point.error.duration.max"`
	EndPointErrorDurationMin     map[string]time.Duration `json:"end_point.error.duration.min"`
	EndPointErrorDurationTotal   map[string]time.Duration `json:"end_point.error.duration.total"`
	EndPointErrorLastCall        map[string]time.Time     `json:"end_point.error.last_call"`
	EndPointTotalCount           map[string]uint64        `json:"end_point.total.count"`
	EndPointTotalDurationAvg     map[string]time.Duration `json:"end_point.total.duration.avg"`
	EndPointTotalDurationMax     map[string]time.Duration `json:"end_point.total.duration.max"`
	EndPointTotalDurationMin     map[string]time.Duration `json:"end_point.total.duration.min"`
	EndPointTotalDurationTotal   map[string]time.Duration `json:"end_point.total.duration.total"`
	EndPointTotalLastCall        map[string]time.Time     `json:"end_point.total.last_call"`
}

func (*Metric) Init

func (m *Metric) Init()

func (*Metric) Update

func (m *Metric) Update(c *Ctx)

type MetricConfig

type MetricConfig struct {
	Enable bool `yaml:"enable"`
	Port   int  `yaml:"port"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL