• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.circleci/H11-Mar-2021-

.gitattributesH A D11-Mar-202132

.gitignoreH A D11-Mar-2021123

LICENSEH A D11-Mar-20211.1 KiB

README.mdH A D11-Mar-2021946

encoder.goH A D11-Mar-20217.2 KiB

encoder_test.goH A D11-Mar-202116.9 KiB

escape.goH A D11-Mar-20216.3 KiB

escaper_test.goH A D11-Mar-20211.2 KiB

go.modH A D11-Mar-202152

go.sumH A D11-Mar-20210

handler.goH A D11-Mar-20212.9 KiB

machine.goH A D11-Mar-202154.4 KiB

machine.go.rlH A D11-Mar-20219.8 KiB

machine_test.goH A D11-Mar-202139 KiB

metric.goH A D11-Mar-20217.9 KiB

parser.goH A D11-Mar-20214.4 KiB

parser_test.goH A D11-Mar-202120.9 KiB

writer.goH A D11-Mar-20212.9 KiB

README.md

1# line-protocol
2
3This is an encoder for the influx [line protocol.](https://docs.influxdata.com/influxdb/latest/reference/syntax/line-protocol/)
4
5It has an interface similar to the standard library's `json.Encoder`.
6
7
8### some caveats.
9- It is not concurrency-safe.  If you want to make multiple calls to `Encoder.Encode` concurrently you have to manage the concurrency yourself.
10- It can only encode values that are uint64, int64, int, float32, float64, string, or bool.
11- Ints are converted to int64, float32's to float64.
12- If UintSupport is not set, uint64s are converted to int64's and if they are larger than the max int64, they get truncated to the max int64 instead of overflowing.
13
14
15### Example:
16```go
17buf := &bytes.Buffer{}
18serializer := protocol.NewEncoder(buf)
19serializer.SetMaxLineBytes(1024)
20serializer.SetFieldTypeSupport(UintSupport)
21serializer.Encode(e) // where e is something that implements the protocol.Metric interface
22```
23