Skip to main content
Version: v1.40.0

Azure Blob Storage

Overview​

Export evaluation data to an Azure Blob Storage.

Everytime the FlushInterval or MaxEventInMemory is reached a new file will be added to Azure Blob Storage.

info

If for some reason the Azure Blob Storage upload fails, we will keep the data in memory and retry to add the next time we reach FlushInterval or MaxEventInMemory.

Configure the relay proxy​

To configure your relay proxy to use the Azure Blob Storage exporter, you need to add the following configuration to your relay proxy configuration file:

goff-proxy.yaml
# ...
exporter:
kind: azureBlobStorage
container: test-goff
accountName: goff
# ...
Field nameMandatoryTypeDefaultDescription
kindstringnoneValue should be azureBlobStorage.
This field is mandatory and describes which retriever you are using.
containerstringnoneThis is the name of your Azure Blob Storage container (ex: my-featureflag-container).
accountNamestringnoneThis is the name of your Azure Blob Storage account.
accountKeystringnoneThis is the secret key of your Azure Blob Storage account.
flushIntervalint60000The interval in millisecond between 2 calls to the webhook (if the maxEventInMemory is reached before the flushInterval we will call the exporter before).
maxEventInMemoryint100000If we hit that limit we will call the exporter.
formatstringJSONFormat is the output format you want in your exported file. Available format: JSON, CSV, Parquet.
filenamestringflag-variation-{{ .Hostname}}-{{ .Timestamp}}.{{ .Format}}You can use a config template to define the name of your exported files. Available replacements are {{ .Hostname}}, {{ .Timestamp}} and {{ .Format}
csvTemplatestring{{ .Kind}};{{ .ContextKind}};{{ .UserKey}};{{ .CreationDate}};{{ .Key}};{{ .Variation}};{{ .Value}};{{ .Default}};{{ .Source}}\nCsvTemplate is used if your output format is CSV.
This field will be ignored if you are using format other than CSV.
You can decide which fields you want in your CSV line with a go-template syntax, please check exporter/feature_event.go to see what are the fields available.
pathstringbucket root levelThe location of the directory in S3.
parquetCompressionCodecstringSNAPPYParquetCompressionCodec is the parquet compression codec for better space efficiency. Available options

Configure the GO Module​

To configure your GO module to use the Azure Blob Storage exporter, you need to add the following configuration to your ffclient.Config{} object:

example.go
config := ffclient.Config{
// ...
DataExporter: ffclient.DataExporter{
// ...
Exporter: &azureexporter.Exporter{
Container: "test-goff",
Format: "json",
Path: "yourPath",
Filename: "flag-variation-{{ .Timestamp}}.{{ .Format}}",
AccountName: "goff",
AccountKey: "XXXX",
},
},
// ...
}
err := ffclient.Init(config)
defer ffclient.Close()
Field nameMandatoryDefaultDescription
Container noneName of your Azure Blob Storage Container.
AccountName noneThis is the name of your Azure Blob Storage account.
AccountKey noneThis is the secret key of your Azure Blob Storage account.
FlushInterval60000The interval in millisecond between 2 calls to the webhook (if the maxEventInMemory is reached before the flushInterval we will call the exporter before).
MaxEventInMemory100000If we hit that limit we will call the exporter.
FormatJSONFormat is the output format you want in your exported file. Available format: JSON, CSV, Parquet.
Filenameflag-variation-{{ .Hostname}}-{{ .Timestamp}}.{{ .Format}}You can use a config template to define the name of your exported files. Available replacements are {{ .Hostname}}, {{ .Timestamp}} and {{ .Format}
CsvTemplate{{ .Kind}};{{ .ContextKind}};{{ .UserKey}};{{ .CreationDate}};{{ .Key}};{{ .Variation}};{{ .Value}};{{ .Default}};{{ .Source}}\nCsvTemplate is used if your output format is CSV.
This field will be ignored if you are using format other than CSV.
You can decide which fields you want in your CSV line with a go-template syntax, please check exporter/feature_event.go to see what are the fields available.
Pathbucket root levelThe location of the directory in S3.
ParquetCompressionCodecSNAPPYParquetCompressionCodec is the parquet compression codec for better space efficiency. Available options