27 lines
1.2 KiB
Go
27 lines
1.2 KiB
Go
package postgresql
|
|
|
|
import "github.com/influxdata/telegraf/plugins/outputs/postgresql/utils"
|
|
|
|
// Column names and data types for standard fields (time, tag_id, tags, and fields)
|
|
const (
|
|
timeColumnName = "time"
|
|
timeColumnDataType = PgTimestampWithoutTimeZone
|
|
tagIDColumnName = "tag_id"
|
|
tagIDColumnDataType = PgBigInt
|
|
tagsJSONColumnName = "tags"
|
|
fieldsJSONColumnName = "fields"
|
|
jsonColumnDataType = PgJSONb
|
|
)
|
|
|
|
var timeColumn = utils.Column{Name: timeColumnName, Type: timeColumnDataType, Role: utils.TimeColType}
|
|
var tagIDColumn = utils.Column{Name: tagIDColumnName, Type: tagIDColumnDataType, Role: utils.TagsIDColType}
|
|
var fieldsJSONColumn = utils.Column{Name: fieldsJSONColumnName, Type: jsonColumnDataType, Role: utils.FieldColType}
|
|
var tagsJSONColumn = utils.Column{Name: tagsJSONColumnName, Type: jsonColumnDataType, Role: utils.TagColType}
|
|
|
|
func (p *Postgresql) columnFromTag(key string, value interface{}) utils.Column {
|
|
return utils.Column{Name: key, Type: p.derivePgDatatype(value), Role: utils.TagColType}
|
|
}
|
|
func (p *Postgresql) columnFromField(key string, value interface{}) utils.Column {
|
|
return utils.Column{Name: key, Type: p.derivePgDatatype(value), Role: utils.FieldColType}
|
|
}
|