github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/CHANGELOG.md (about)

     1  ## Main/Unreleased
     2  
     3  ### All Changes
     4  
     5  #### Loki
     6  
     7  ##### Enhancements
     8  * [6821](https://github.com/grafana/loki/pull/6821) **kavirajk**: Introduce new cache type `embedded-cache` which is an in-process cache system that runs loki without the need for an external cache (like memcached, redis, etc). It can be run in two modes `distributed: false` (default, and same as old `fifocache`) and `distributed: true` which runs cache in distributed fashion sharding keys across peers if Loki is run in microservices or SSD mode.
     9  * [6691](https://github.com/grafana/loki/pull/6691) **dannykopping**: Update production-ready Loki cluster in docker-compose
    10  * [6317](https://github.com/grafana/loki/pull/6317) **dannykoping**: General: add cache usage statistics
    11  * [6444](https://github.com/grafana/loki/pull/6444) **aminesnow** Add TLS config to query frontend.
    12  * [6372](https://github.com/grafana/loki/pull/6372) **splitice**: Add support for numbers in JSON fields.
    13  * [6179](https://github.com/grafana/loki/pull/6179) **chaudum**: Add new HTTP endpoint to delete ingester ring token file and shutdown process gracefully
    14  * [5997](https://github.com/grafana/loki/pull/5997) **simonswine**: Querier: parallize label queries to both stores.
    15  * [5406](https://github.com/grafana/loki/pull/5406) **ctovena**: Revise the configuration parameters that configure the usage report to grafana.com.
    16  
    17  ##### Fixes
    18  * [6358](https://github.com/grafana/loki/pull/6358) **taharah**: Fixes sigv4 authentication for the Ruler's remote write configuration by allowing both a global and per tenant configuration.
    19  * [6375](https://github.com/grafana/loki/pull/6375) **dannykopping**: Fix bug that prevented users from using the `json` parser after a `line_format` pipeline stage.
    20  ##### Changes
    21  * [6726](https://github.com/grafana/loki/pull/6726) **kavirajk** upgrades go from 1.17.9 -> 1.18.4
    22  * [6415](https://github.com/grafana/loki/pull/6415) **salvacorts** Evenly spread queriers across kubernetes nodes.
    23  * [6349](https://github.com/grafana/loki/pull/6349) **simonswine**: Update the default HTTP listen port from 80 to 3100. Make sure to configure the port explicitly if you are using port 80.
    24  
    25  #### Promtail
    26  
    27  ##### Enhancements
    28  * [6395](https://github.com/grafana/loki/pull/6395) **DylanGuedes**: Add encoding support
    29  * [6828](https://github.com/grafana/loki/pull/6828) **alexandre1984rj** Add the BotScore and BotScoreSrc fields once the Cloudflare API returns those two fields on the list of all available log fields.
    30  
    31  ##### Fixes
    32  * [6766](https://github.com/grafana/loki/pull/6766) **kavirajk**: fix(logql): Make `LabelSampleExtractor` ignore processing the line if it doesn't contain that specific label. Fixes unwrap behavior explained in the issue https://github.com/grafana/loki/issues/6713
    33  
    34  ##### Changes
    35  
    36  #### Fluent Bit
    37  
    38  #### Loki Canary
    39  
    40  #### Jsonnet
    41  * [6189](https://github.com/grafana/loki/pull/6189) **irizzant**: Add creation of a `ServiceMonitor` object for Prometheus scraping through configuration parameter `create_service_monitor`. Simplify mixin usage by adding (https://github.com/prometheus-operator/kube-prometheus) library.
    42  
    43  
    44  ### Notes
    45  
    46  This release was created from a branch starting at commit FIXME but it may also contain backported changes from main.
    47  
    48  Check the history of the branch FIXME.
    49  
    50  ### Dependencies
    51  
    52  * Go Version:     FIXME
    53  
    54  # 2.6.1 (2022/07/18)
    55  
    56  ### All Changes
    57  
    58  * [6658](https://github.com/grafana/loki/pull/6658) Updated the versions of [dskit](https://github.com/grafana/dskit) and [memberlist](https://github.com/grafana/memberlist) to allow configuring cluster labels for memberlist. Cluster labels prevent mixing the members between two consistent hash rings of separate applications that are run in the same Kubernetes cluster.
    59  * [6681](https://github.com/grafana/loki/pull/6681) Fixed an HTTP connection leak between the querier and the compactor when the log entry deletion feature is enabled.
    60  * [6583](https://github.com/grafana/loki/pull/6583) Fixed noisy error messages when the log entry deletion feature is disabled for a tenant.
    61  
    62  # 2.6.0 (2022/07/08)
    63  
    64  ### All Changes
    65  Here is the list with the changes that were produced since the previous release.
    66  
    67  #### Loki
    68  
    69  ##### Enhancements
    70  * [5662](https://github.com/grafana/loki/pull/5662) **ssncferreira** **chaudum** Improve performance of instant queries by splitting range into multiple subqueries that are executed in parallel.
    71  * [5848](https://github.com/grafana/loki/pull/5848) **arcosx**: Add Baidu AI Cloud as a storage backend choice.
    72  * [6410](https://github.com/grafana/loki/pull/6410) **MichelHollands**: Add support for per tenant delete API access enabling.
    73  * [5879](https://github.com/grafana/loki/pull/5879) **MichelHollands**: Remove lines matching delete request expression when using "filter-and-delete" deletion mode.
    74  * [5984](https://github.com/grafana/loki/pull/5984) **dannykopping** and **salvacorts**: Improve query performance by preventing unnecessary querying of ingesters when the query data is old enough to be in object storage.
    75  * [5971](https://github.com/grafana/loki/pull/5971) **kavirajk**: Extend the `metrics.go` recording of statistics about metadata queries to include labels and series queries.
    76  * [6136](https://github.com/grafana/loki/pull/6136) **periklis**: Add support for alertmanager header authorization.
    77  * [6163](https://github.com/grafana/loki/pull/6163) **jburnham**: LogQL: Add a `default` sprig template function in LogQL label/line formatter.
    78  
    79  ##### Fixes
    80  * [6152](https://github.com/grafana/loki/pull/6152) **slim-bean**: Fixes unbounded ingester memory growth when live tailing under specific circumstances.
    81  * [5685](https://github.com/grafana/loki/pull/5685) **chaudum**: Fix bug in push request parser that allowed users to send arbitrary non-string data as "log line".
    82  * [5799](https://github.com/grafana/loki/pull/5799) **cyriltovena** Fix deduping issues when multiple entries with the same timestamp exist. !hide or not hide (bugfix Loki)
    83  * [5888](https://github.com/grafana/loki/pull/5888) **Papawy** Fix common configuration block net interface name when overwritten by ring common configuration.
    84  
    85  ##### Changes
    86  * [6361](https://github.com/grafana/loki/pull/6361) **chaudum**: Sum values in unwrapped rate aggregation instead of treating them as counter.
    87  * [6412](https://github.com/grafana/loki/pull/6412) **chaudum**: Add new unwrapped range aggregation `rate_counter()` to LogQL
    88  * [6042](https://github.com/grafana/loki/pull/6042) **slim-bean**: Add a new configuration to allow fudging of ingested timestamps to guarantee sort order of duplicate timestamps at query time.
    89  * [6120](https://github.com/grafana/loki/pull/6120) **KMiller-Grafana**: Rename configuration parameter fudge_duplicate_timestamp to be increment_duplicate_timestamp.
    90  * [5777](https://github.com/grafana/loki/pull/5777) **tatchiuleung**: storage: make Azure blobID chunk delimiter configurable
    91  * [5650](https://github.com/grafana/loki/pull/5650) **cyriltovena**: Remove more chunkstore and schema version below v9
    92  * [5643](https://github.com/grafana/loki/pull/5643) **simonswine**: Introduce a ChunkRef type as part of logproto
    93  * [6435](https://github.com/grafana/loki/pull/6435) **MichelHollands**: Remove the `whole-stream-deletion` mode.
    94  * [5899](https://github.com/grafana/loki/pull/5899) **simonswine**: Update go image to 1.17.9.
    95  
    96  #### Promtail
    97  
    98  ##### Enhancements
    99  * [6105](https://github.com/grafana/loki/pull/6105) **rutgerke** Export metrics for the Promtail journal target.
   100  * [5943](https://github.com/grafana/loki/pull/5943) **tpaschalis**: Add configuration support for excluding configuration files when instantiating Promtail.
   101  * [5790](https://github.com/grafana/loki/pull/5790) **chaudum**: Add UDP support for Promtail's syslog target.
   102  * [6102](https://github.com/grafana/loki/pull/6102) **timchenko-a**: Add multi-tenancy support to lambda-promtail.
   103  * [6099](https://github.com/grafana/loki/pull/6099) **cstyan**: Drop lines with malformed JSON in Promtail JSON pipeline stage.
   104  * [5715](https://github.com/grafana/loki/pull/5715) **chaudum**: Allow promtail to push RFC5424 formatted syslog messages
   105  
   106  ##### Fixes
   107  * [6034](https://github.com/grafana/loki/pull/6034) **DylanGuedes**: Promtail: Fix symlink tailing behavior.
   108  ##### Changes
   109  * [5686](https://github.com/grafana/loki/pull/5686) **ssncferreira**: Move promtail StreamLagLabels config to upper level config.Config
   110  * [5839](https://github.com/grafana/loki/pull/5839) **marctc**: Add ActiveTargets method to promtail
   111  * [5661](https://github.com/grafana/loki/pull/5661) **masslessparticle**: Invalidate caches on deletes
   112  #### Fluent Bit
   113  * [5711](https://github.com/grafana/loki/pull/5711) **MichelHollands**: Update fluent-bit output name
   114  
   115  #### Loki Canary
   116  * [6310](https://github.com/grafana/loki/pull/6310) **chodges15**: Add support for client-side TLS certs in loki-canary for Loki connection
   117  ### Notes
   118  
   119  This release was created from a branch starting at commit `1794a766134f07b54386b1a431b58e1d44e6d7f7` but it may also contain backported changes from main.
   120  
   121  Check the history of the branch `release-2.6.x`.
   122  
   123  ### Dependencies
   124  
   125  * Go Version:     1.17.9
   126  
   127  # 2.5.0 (2022/04/07)
   128  
   129  Release notes for 2.5.0 can be found on the [release notes page](https://grafana.com/docs/loki/latest/release-notes/v2-5/)
   130  
   131  ### All Changes
   132  
   133  Here is a list of all significant changes, in the past we have included all changes
   134  but with over 500 PR's merged since the last release we decided to curate the list
   135  to include only the most relevant.
   136  
   137  #### Loki
   138  
   139  ##### Enhancements
   140  * [5542](https://github.com/grafana/loki/pull/5542) **bboreham**: regexp filter: use modified package with optimisations
   141  * [5318](https://github.com/grafana/loki/pull/5318) **jeschkies**: Speed up `EntrySortIterator` by 20%.
   142  * [5317](https://github.com/grafana/loki/pull/5317) **owen-d**: Logql/parallel binop
   143  * [5315](https://github.com/grafana/loki/pull/5315) **bboreham**: filters: use faster regexp package
   144  * [5311](https://github.com/grafana/loki/pull/5311) **vlad-diachenko**: Removed redundant memory allocations in parsers
   145  * [5291](https://github.com/grafana/loki/pull/5291) **owen-d**: less opaque chunk keys on fs with v12
   146  * [5275](https://github.com/grafana/loki/pull/5275) **SasSwart**: Parse duration expressions in accordance with promql
   147  * [5249](https://github.com/grafana/loki/pull/5249) **3JIou-home**: Push: add deflate compression in post requests
   148  * [5160](https://github.com/grafana/loki/pull/5160) **sandeepsukhani**: add objects list caching for boltdb-shipper index store to reduce object storage list api calls
   149  * [5148](https://github.com/grafana/loki/pull/5148) **chaudum**: Auto-expire old items from FIFO cache
   150  * [5093](https://github.com/grafana/loki/pull/5093) **liguozhong**: [enhancement] querier : Add "query_memory_only" to make loki have option to rely only on memory availability.
   151  * [5078](https://github.com/grafana/loki/pull/5078) **ssncferreira**: Loki: Implement custom /config handler (#4785)
   152  * [5054](https://github.com/grafana/loki/pull/5054) **JordanRushing**: new v12 schema optimized to better handle S3 prefix rate limits
   153  * [5013](https://github.com/grafana/loki/pull/5013) **liguozhong**: [new feature] logql: extrapolate unwrapped rate function
   154  * [4947](https://github.com/grafana/loki/pull/4947) **siavashs**: Support Redis Cluster Configuration Endpoint
   155  * [4938](https://github.com/grafana/loki/pull/4938) **DylanGuedes**: Add distributor ring page
   156  * [4879](https://github.com/grafana/loki/pull/4879) **cyriltovena**: LogQL: add __line__ function to | line_format template
   157  * [4858](https://github.com/grafana/loki/pull/4858) **sandy2008**: feat(): add ManagedIdentity in Azure Blob Storage
   158  ## Main
   159  * [5789](https://github.com/grafana/loki/pull/5789) **bboreham**: Production config: add dot to some DNS address to reduce lookups.
   160  * [5780](https://github.com/grafana/loki/pull/5780) **simonswine**: Update alpine image to 3.15.4.
   161  * [5715](https://github.com/grafana/loki/pull/5715) **chaudum** Add option to push RFC5424 syslog messages from Promtail in syslog scrape target.
   162  * [5696](https://github.com/grafana/loki/pull/5696) **paullryan** don't block scraping of new logs from cloudflare within promtail if an error is received from cloudflare about too early logs.
   163  * [5685](https://github.com/grafana/loki/pull/5625) **chaudum** Fix bug in push request parser that allowed users to send arbitrary non-string data as "log line".
   164  * [5707](https://github.com/grafana/loki/pull/5707) **franzwong** Promtail: Rename config name limit_config to limits_config.
   165  * [5626](https://github.com/grafana/loki/pull/5626) **jeschkies** Apply query limits to multi-tenant queries by choosing the most restrictive limit from the set of tenant limits.
   166  * [5622](https://github.com/grafana/loki/pull/5622) **chaudum**: Fix bug in query splitter that caused `interval` query parameter to be ignored and therefore returning more logs than expected.
   167  * [5521](https://github.com/grafana/loki/pull/5521) **cstyan**: Move stream lag configuration to top level clients config struct and refactor stream lag metric, this resolves a bug with duplicate metric collection when a single Promtail binary is running multiple Promtail clients.
   168  * [5568](https://github.com/grafana/loki/pull/5568) **afayngelerindbx**: Fix canary panics due to concurrent execution of `confirmMissing`
   169  * [5552](https://github.com/grafana/loki/pull/5552) **jiachengxu**: Loki mixin: add `DiskSpaceUtilizationPanel`
   170  * [5541](https://github.com/grafana/loki/pull/5541) **bboreham**: Queries: reject very deeply nested regexps which could crash Loki.
   171  * [5536](https://github.com/grafana/loki/pull/5536) **jiachengxu**: Loki mixin: make labelsSelector in loki chunks dashboards configurable
   172  * [5535](https://github.com/grafana/loki/pull/5535) **jiachengxu**: Loki mixins: use labels selector for loki chunks dashboard
   173  * [5507](https://github.com/grafana/loki/pull/5507) **MichelHollands**: Remove extra param in call for inflightRequests metric.
   174  * [5481](https://github.com/grafana/loki/pull/5481) **MichelHollands**: Add a DeletionMode config variable to specify the delete mode and validate match parameters.
   175  * [5356](https://github.com/grafana/loki/pull/5356) **jbschami**: Enhance lambda-promtail to support adding extra labels from an environment variable value
   176  * [5409](https://github.com/grafana/loki/pull/5409) **ldb**: Enable best effort parsing for Syslog messages
   177  * [5392](https://github.com/grafana/loki/pull/5392) **MichelHollands**: Etcd credentials are parsed as secrets instead of plain text now.
   178  * [5361](https://github.com/grafana/loki/pull/5361) **ctovena**: Add usage report to grafana.com.
   179  * [5354](https://github.com/grafana/loki/pull/5354) **tlinhart**: Add support for ARM64 to lambda-promtail drone build job.
   180  * [5289](https://github.com/grafana/loki/pull/5289) **ctovena**: Fix deduplication bug in queries when mutating labels.
   181  * [5302](https://github.com/grafana/loki/pull/5302) **MasslessParticle** Update azure blobstore client to use new sdk.
   182  * [5243](https://github.com/grafana/loki/pull/5290) **ssncferreira**: Update Promtail to support duration string formats.
   183  * [5266](https://github.com/grafana/loki/pull/5266) **jeschkies**: Write Promtail position file atomically on Unix.
   184  * [5280](https://github.com/grafana/loki/pull/5280) **jeschkies**: Fix Docker target connection loss.
   185  * [5243](https://github.com/grafana/loki/pull/5243) **owen-d**: moves `querier.split-queries-by-interval` to limits code only.
   186  * [5139](https://github.com/grafana/loki/pull/5139) **DylanGuedes**: Drop support for legacy configuration rules format.
   187  * [5262](https://github.com/grafana/loki/pull/5262) **MichelHollands**: Remove the labelFilter field
   188  * [4911](https://github.com/grafana/loki/pull/4911) **jeschkies**: Support Docker service discovery in Promtail.
   189  * [5107](https://github.com/grafana/loki/pull/5107) **chaudum** Fix bug in fluentd plugin that caused log lines containing non UTF-8 characters to be dropped.
   190  * [5148](https://github.com/grafana/loki/pull/5148) **chaudum** Add periodic task to prune old expired items from the FIFO cache to free up memory.
   191  * [5187](https://github.com/grafana/loki/pull/5187) **aknuds1** Rename metric `cortex_experimental_features_in_use_total` to `loki_experimental_features_in_use_total` and metric `log_messages_total` to `loki_log_messages_total`.
   192  * [5170](https://github.com/grafana/loki/pull/5170) **chaudum** Fix deadlock in Promtail caused when targets got removed from a target group by the discovery manager.
   193  * [5163](https://github.com/grafana/loki/pull/5163) **chaudum** Fix regression in fluentd plugin introduced with #5107 that caused `NoMethodError` when parsing non-string values of log lines.
   194  * [5144](https://github.com/grafana/loki/pull/5144) **dannykopping** Ruler: fix remote write basic auth credentials.
   195  * [5091](https://github.com/grafana/loki/pull/5091) **owen-d**: Changes `ingester.concurrent-flushes` default to 32
   196  * [5031](https://github.com/grafana/loki/pull/5031) **liguozhong**: Promtail: Add global read rate limiting.
   197  * [4879](https://github.com/grafana/loki/pull/4879) **cyriltovena**: LogQL: add __line__ function to | line_format template.
   198  * [5081](https://github.com/grafana/loki/pull/5081) **SasSwart**: Add the option to configure memory ballast for Loki
   199  * [5085](https://github.com/grafana/loki/pull/5085) **aknuds1**: Upgrade Cortex to [e0807c4eb487](https://github.com/cortexproject/cortex/compare/4e9fc3a2b5ab..e0807c4eb487) and Prometheus to [692a54649ed7](https://github.com/prometheus/prometheus/compare/2a3d62ac8456..692a54649ed7)
   200  * [5067](https://github.com/grafana/loki/pull/5057) **cstyan**: Add a metric to Azure Blob Storage client to track total egress bytes
   201  * [5065](https://github.com/grafana/loki/pull/5065) **AndreZiviani**: lambda-promtail: Add ability to ingest logs from S3
   202  * [4950](https://github.com/grafana/loki/pull/4950) **DylanGuedes**: Implement common instance addr/net interface
   203  * [4949](https://github.com/grafana/loki/pull/4949) **ssncferreira**: Add query `queueTime` metric to statistics and metrics.go
   204  * [4938](https://github.com/grafana/loki/pull/4938) **DylanGuedes**: Implement ring status page for the distributor
   205  * [5023](https://github.com/grafana/loki/pull/5023) **ssncferreira**: Move `querier.split-queries-by-interval` to a per-tenant configuration
   206  * [4993](https://github.com/grafana/loki/pull/4926) **thejosephstevens**: Fix parent of wal and wal_cleaner in loki ruler config docs
   207  * [4933](https://github.com/grafana/loki/pull/4933) **jeschkies**: Support matchers in series label values query.
   208  * [4926](https://github.com/grafana/loki/pull/4926) **thejosephstevens**: Fix comment in Loki module loading for accuracy
   209  * [4920](https://github.com/grafana/loki/pull/4920) **chaudum**: Add `-list-targets` command line flag to list all available run targets
   210  * [4860](https://github.com/grafana/loki/pull/4860) **cyriltovena**: Add rate limiting and metrics to hedging
   211  * [4865](https://github.com/grafana/loki/pull/4865) **taisho6339**: Fix duplicate registry.MustRegister call in Promtail Kafka
   212  * [4845](https://github.com/grafana/loki/pull/4845) **chaudum** Return error responses consistently as JSON
   213  * [4826](https://github.com/grafana/loki/pull/4826) **cyriltovena**: Adds the ability to hedge storage requests.
   214  * [4785](https://github.com/grafana/loki/pull/4785) **DylanGuedes**: Loki: Print current config by calling /config
   215  * [4775](https://github.com/grafana/loki/pull/4775) **jeschkies**: Make `*` and `+` non-greedy to double regex filter speed.
   216  * [4769](https://github.com/grafana/loki/pull/4769) **cyriltovena**: Improve LogQL format stages requireLabel
   217  * [4731](https://github.com/grafana/loki/pull/4731) **cyriltovena**: Improve heap iterators.
   218  * [4394](https://github.com/grafana/loki/pull/4394) **cyriltovena**: Improve case insensitive search to avoid allocations.
   219  
   220  
   221  ##### Fixes
   222  
   223  * [5768](https://github.com/grafana/loki/pull/5768) **slim-bean**: Loki: Increase flush_op_timeout default from 10s to 10m
   224  * [5761](https://github.com/grafana/loki/pull/5761) **slim-bean**: Promtil: Fix a panic when using the loki push api target.
   225  * [5622](https://github.com/grafana/loki/pull/5622) **chaudum**: Preserve interval parameter when splitting queries by time
   226  * [5541](https://github.com/grafana/loki/pull/5541) **bboreham**: Queries: update package to reject very deeply nested regexps which could crash Loki
   227  * [5527](https://github.com/grafana/loki/pull/5527) **liguozhong**: [bugfix] fix nil pointer
   228  * [5474](https://github.com/grafana/loki/pull/5474) **cyriltovena**: Disable sharding of count/avg when labels are mutated
   229  * [5472](https://github.com/grafana/loki/pull/5472) **MasslessParticle**: Fix potential deadlock in the table manager
   230  * [5444](https://github.com/grafana/loki/pull/5444) **cyriltovena**: Do not insert missing point when sharding
   231  * [5425](https://github.com/grafana/loki/pull/5425) **cyriltovena**: Do not use WaitGroup context for StepEvaluator
   232  * [5423](https://github.com/grafana/loki/pull/5423) **cyriltovena**: Correctly sets hash value for headblock iterator
   233  * [5418](https://github.com/grafana/loki/pull/5418) **RangerCD**: Fix two remote_timeout configs in ingester_client block
   234  * [5413](https://github.com/grafana/loki/pull/5413) **MasslessParticle**: Fix a deadlock in the Azure Blob client
   235  * [5399](https://github.com/grafana/loki/pull/5399) **MasslessParticle**: Fix Azure issue where 404 not recognized
   236  * [5362](https://github.com/grafana/loki/pull/5362) **gotjosh**: Ruler: Rule group not found API message
   237  * [5342](https://github.com/grafana/loki/pull/5342) **sandeepsukhani**: Fix apply retention issue
   238  * [5334](https://github.com/grafana/loki/pull/5334) **kavirajk**: Makes `tailer.droppedStreams` slice bounded.
   239  * [5324](https://github.com/grafana/loki/pull/5324) **owen-d**: Release entryBufferPool once
   240  * [5303](https://github.com/grafana/loki/pull/5303) **owen-d**: Better logic for when to shard wrt disabled lookback
   241  * [5298](https://github.com/grafana/loki/pull/5298) **sandeepsukhani**: fix a panic in index-gateway caused by double closing of a channel
   242  * [5297](https://github.com/grafana/loki/pull/5297) **vlad-diachenko**: Changed logic of handling RPC error with code Cancelled
   243  * [5289](https://github.com/grafana/loki/pull/5289) **cyriltovena**: Fixes log deduplication when mutating Labels using LogQL
   244  * [5261](https://github.com/grafana/loki/pull/5261) **sandeepsukhani**: use default retention period to check user index may have expired chunks when user does not have custom retention
   245  * [5234](https://github.com/grafana/loki/pull/5234) **RangerCD**: Ignore missing stream while querying from ingester
   246  * [5168](https://github.com/grafana/loki/pull/5168) **kavirajk**: Add `nil` check for Ruler BasicAuth config.
   247  * [5144](https://github.com/grafana/loki/pull/5144) **dannykopping**: Ruler: Fix remote write basic auth credentials
   248  * [5113](https://github.com/grafana/loki/pull/5113) **kavirajk**: Fix cancel issue between Query Frontend and Query Schdeduler
   249  * [5080](https://github.com/grafana/loki/pull/5080) **kavirajk**: Handle `context` cancellation in some of the `querier` downstream requests
   250  * [5075](https://github.com/grafana/loki/pull/5075) **cyriltovena**: Fixes a possible cancellation issue in the frontend
   251  * [5063](https://github.com/grafana/loki/pull/5063) **cyriltovena**: Fix deadlock in disconnecting querier
   252  * [5060](https://github.com/grafana/loki/pull/5060) **cyriltovena**: Fix race conditions in frontend_scheduler_worker.
   253  * [5006](https://github.com/grafana/loki/pull/5006) **sandeepsukhani**: fix splitting of queries when step is larger than split interval
   254  * [4904](https://github.com/grafana/loki/pull/4904) **bboreham**: ingester: use consistent set of instances to avoid panic
   255  * [4902](https://github.com/grafana/loki/pull/4902) **cyriltovena**: Fixes 500 when query is outside of max_query_lookback
   256  * [4828](https://github.com/grafana/loki/pull/4828) **chaudum**: Set correct `Content-Type` header in query response
   257  * [4761](https://github.com/grafana/loki/pull/4761) **slim-bean**: Loki: Set querier worker max concurrent regardless of run configuration.
   258  * [4741](https://github.com/grafana/loki/pull/4741) **sandeepsukhani**: index cleanup fixes while applying retention
   259  
   260  ##### Changes
   261  * [5544](https://github.com/grafana/loki/pull/5544) **ssncferreira**: Update vectorAggEvaluator to fail for expressions without grouping
   262  * [5543](https://github.com/grafana/loki/pull/5543) **cyriltovena**: update loki go version to 1.17.8
   263  * [5450](https://github.com/grafana/loki/pull/5450) **BenoitKnecht**: pkg/ruler/base: Add external_labels option
   264  * [5484](https://github.com/grafana/loki/pull/5484) **sandeepsukhani**: Add support for per user index query readiness with limits overrides
   265  * [5719](https://github.com/grafana/loki/pull/5719) **kovaxur**: Loki can use both basic-auth and tenant-id
   266  * [5358](https://github.com/grafana/loki/pull/5358) **DylanGuedes**: Add `RingMode` support to `IndexGateway`
   267  * [5435](https://github.com/grafana/loki/pull/5435) **slim-bean**: set match_max_concurrent true by default
   268  * [5361](https://github.com/grafana/loki/pull/5361) **cyriltovena**: Add usage report into Loki.
   269  * [5243](https://github.com/grafana/loki/pull/5243) **owen-d**: Refactor/remove global splitby
   270  * [5229](https://github.com/grafana/loki/pull/5229) **chaudum**: Return early if push payload does not contain data
   271  * [5217](https://github.com/grafana/loki/pull/5217) **sandeepsukhani**: step align start and end time of the original query while splitting it
   272  * [5204](https://github.com/grafana/loki/pull/5204) **trevorwhitney**: Default max_outstanding_per_tenant to 2048
   273  * [5181](https://github.com/grafana/loki/pull/5181) **sandeepsukhani**: align metric queries by step and other queries by split interval
   274  * [5178](https://github.com/grafana/loki/pull/5178) **liguozhong**: Handle `context` cancellation in some of the `querier` store.index-cache-read.
   275  * [5172](https://github.com/grafana/loki/pull/5172) **cyriltovena**: Avoid splitting large range vector aggregation.
   276  * [5125](https://github.com/grafana/loki/pull/5125) **sasagarw**: Remove split-queries-by-interval validation
   277  * [5091](https://github.com/grafana/loki/pull/5091) **owen-d**: better defaults for flush queue parallelism
   278  * [5083](https://github.com/grafana/loki/pull/5083) **liguozhong**: [enhancement] querier cache: WriteBackCache should be off query path
   279  * [5081](https://github.com/grafana/loki/pull/5081) **SasSwart**: Add the option to configure memory ballast for Loki
   280  * [5077](https://github.com/grafana/loki/pull/5077) **trevorwhitney**: improve default config values
   281  * [5067](https://github.com/grafana/loki/pull/5067) **cstyan**: Add an egress bytes total metric to the azure client.
   282  * [5026](https://github.com/grafana/loki/pull/5026) **sandeepsukhani**: compactor changes for building per user index files in boltdb shipper
   283  * [5023](https://github.com/grafana/loki/pull/5023) **ssncferreira**: Move querier.split-queries-by-interval to a per-tenant configuration
   284  * [5022](https://github.com/grafana/loki/pull/5022) **owen-d**: adds instrumentation to azure object client
   285  * [4942](https://github.com/grafana/loki/pull/4942) **cyriltovena**: Allow to disable http2 for GCS.
   286  * [4891](https://github.com/grafana/loki/pull/4891) **liguozhong**: [optimization] cache prometheus : fix "loki_cache_request_duration_seconds_bucket" ‘status_code’ label always equals "200"
   287  * [4737](https://github.com/grafana/loki/pull/4737) **owen-d**: ensures components with required SRV lookups use the correct port
   288  * [4736](https://github.com/grafana/loki/pull/4736) **sandeepsukhani**: allow applying retention at different interval than compaction with a config
   289  * [4656](https://github.com/grafana/loki/pull/4656) **ssncferreira**: Fix dskit/ring metric with 'cortex_' prefix
   290  
   291  
   292  #### Promtail
   293  
   294  ##### Enhancements
   295  * [5359](https://github.com/grafana/loki/pull/5359) **JBSchami**: Lambda-promtail: Enhance lambda-promtail to support adding extra labels from an environment variable value
   296  * [5290](https://github.com/grafana/loki/pull/5290) **ssncferreira**: Update promtail to support duration string formats
   297  * [5051](https://github.com/grafana/loki/pull/5051) **liguozhong**: [new] promtail pipeline:  Promtail Rate Limit stage #5048
   298  * [5031](https://github.com/grafana/loki/pull/5031) **liguozhong**: [new] promtail: add readline rate limit
   299  * [4911](https://github.com/grafana/loki/pull/4911) **jeschkies**: Provide Docker target and discovery in Promtail.
   300  * [4813](https://github.com/grafana/loki/pull/4813) **cyriltovena**: Promtail pull cloudflare logs
   301  * [4744](https://github.com/grafana/loki/pull/4744) **cyriltovena**: Add GELF support for Promtail.
   302  * [4663](https://github.com/grafana/loki/pull/4663) **taisho6339**: Add SASL&mTLS authentication support for Kafka in Promtail
   303  
   304  ##### Fixes
   305  * [5497](https://github.com/grafana/loki/pull/5497) **MasslessParticle**: Fix orphaned metrics in the file tailer
   306  * [5409](https://github.com/grafana/loki/pull/5409) **ldb**: promtail/targets/syslog: Enable best effort parsing for Syslog messages
   307  * [5246](https://github.com/grafana/loki/pull/5246) **rsteneteg**: Promtail: skip glob search if filetarget path is an existing file and not a directory
   308  * [5238](https://github.com/grafana/loki/pull/5238) **littlepangdi**: Promtail: fix TargetManager.run() not exit after stop is called
   309  * [4874](https://github.com/grafana/loki/pull/4874) **Alan01252**: Promtail: Fix replace missing adjacent capture groups
   310  * [4832](https://github.com/grafana/loki/pull/4832) **taisho6339**: Use http prefix path correctly in promtail
   311  * [4716](https://github.com/grafana/loki/pull/4716) **cyriltovena**: Fixes Promtail User-Agent.
   312  * [5698](https://github.com/grafana/loki/pull/5698) **paullryan**: Promtail: Fix retry/stop when erroring for out of cloudflare retention range (e.g. over 168 hours old)
   313  
   314  ##### Changes
   315  * [5377](https://github.com/grafana/loki/pull/5377) **slim-bean**: Promtail: Remove promtail_log_entries_bytes_bucket histogram
   316  * [5266](https://github.com/grafana/loki/pull/5266) **jeschkies**: Write Promtail position file atomically.
   317  * [4794](https://github.com/grafana/loki/pull/4794) **taisho6339**: Aggregate inotify watcher to file target manager
   318  * [4745](https://github.com/grafana/loki/pull/4745) **taisho6339**: Expose Kafka message key in labels
   319  
   320  #### Logcli
   321  * [5477](https://github.com/grafana/loki/pull/5477) **atomic77**: logcli: Remove port from TLS server name when provided in --addr
   322  * [4667](https://github.com/grafana/loki/pull/4667) **jeschkies**: Package logcli as rpm and deb.
   323  * [4606](https://github.com/grafana/loki/pull/4606) **kavirajk**: Execute Loki queries on raw log data piped to stdin
   324  
   325  #### Lambda-Promtail
   326  * [5065](https://github.com/grafana/loki/pull/5065) **AndreZiviani**: lambda-promtail: Add ability to ingest logs from S3
   327  
   328  #### Fluent Bit
   329  * [5223](https://github.com/grafana/loki/pull/5223) **cyriltovena**: fluent-bit: Attempt to unmarshal nested json.
   330  
   331  #### FluentD
   332  * [6240](https://github.com/grafana/loki/pull/6240) **taharah**: Add the feature flag `include_thread_label` to allow the `fluentd_thread` label included when using multiple threads for flushing to be configurable
   333  * [5107](https://github.com/grafana/loki/pull/5107) **chaudum**: fluentd: Fix bug that caused lines to be dropped when containing non utf-8 characters
   334  * [5163](https://github.com/grafana/loki/pull/5163) **chaudum**: Fix encoding error in fluentd client
   335  
   336  ### Notes
   337  
   338  This release was created from a branch starting at commit 614912181e6f3988b2b22791053278cfb64e169c but it may also contain backported changes from main.
   339  
   340  Check the history of the branch `release-2.5.x`.
   341  
   342  ### Dependencies
   343  
   344  * Go Version:     1.17.8
   345  
   346  
   347  # 2.4.1 (2021/11/07)
   348  
   349  Release notes for 2.4.1 can be found on the [release notes page](https://grafana.com/docs/loki/latest/release-notes/v2-4/)
   350  
   351  ### All Changes
   352  
   353  * [4687](https://github.com/grafana/loki/pull/4687) **owen-d**: overrides checks for nil tenant limits on AllByUserID
   354  * [4683](https://github.com/grafana/loki/pull/4683) **owen-d**: Adds replication_factor doc to common config
   355  * [4681](https://github.com/grafana/loki/pull/4681) **slim-bean**: Loki: check new Read target when initializing boltdb-shipper store
   356  
   357  # 2.4.0 (2021/11/05)
   358  
   359  Release notes for 2.4.0 can be found on the [release notes page](https://grafana.com/docs/loki/latest/release-notes/v2-4/)
   360  
   361  ### All Changes
   362  
   363  Here is a list of all changes included in 2.4.0.
   364  
   365  #### Loki
   366  
   367  * [4649](https://github.com/grafana/loki/pull/4649) **cstyan**: Instrument s3 client DeleteObject requests.
   368  * [4643](https://github.com/grafana/loki/pull/4643) **trevorwhitney**: compactor depends on memberlist for memberlist ring option
   369  * [4642](https://github.com/grafana/loki/pull/4642) **slim-bean**: Loki: fix handling of tail requests when using target `all` or `read`
   370  * [4641](https://github.com/grafana/loki/pull/4641) **ssncferreira**: Migration to dskit/ring
   371  * [4638](https://github.com/grafana/loki/pull/4638) **DylanGuedes**: Loki: Revert distributor defaulting to `inmemory`
   372  * [4635](https://github.com/grafana/loki/pull/4635) **owen-d**: dont try to use the scheduler ring when a downstream url is configured
   373  * [4630](https://github.com/grafana/loki/pull/4630) **chaudum**: Allow HTTP POST requests on ring pages
   374  * [4627](https://github.com/grafana/loki/pull/4627) **slim-bean**: Loki: Explicitly define allowed HTTP methods on HTTP endpoints
   375  * [4625](https://github.com/grafana/loki/pull/4625) **sandeepsukhani**: Logs deletion fixes
   376  * [4617](https://github.com/grafana/loki/pull/4617) **trevorwhitney**: Add common ring configuration
   377  * [4615](https://github.com/grafana/loki/pull/4615) **owen-d**: uses ring.Write instead of ring.WriteNoExtend for compactor ring checks
   378  * [4614](https://github.com/grafana/loki/pull/4614) **slim-bean**: Loki: query scheduler should send shutdown to frontends when ReplicationSet changes
   379  * [4608](https://github.com/grafana/loki/pull/4608) **trevorwhitney**: default ingester final sleep to 0 unless otherwise specified
   380  * [4607](https://github.com/grafana/loki/pull/4607) **owen-d**: improves scheduler & compactor ringwatcher checks
   381  * [4603](https://github.com/grafana/loki/pull/4603) **garrettlish**: add date time sprig template functions in logql label/line formatter
   382  * [4598](https://github.com/grafana/loki/pull/4598) **kavirajk**: Fix `ip` matcher lexer to differentiate filter from identifier
   383  * [4596](https://github.com/grafana/loki/pull/4596) **owen-d**: Ignore validity window during wal replay
   384  * [4595](https://github.com/grafana/loki/pull/4595) **owen-d**: Cleans up redundant setting of stream.unorderedWrites=true during replay
   385  * [4594](https://github.com/grafana/loki/pull/4594) **owen-d**: Enable unordered_writes by default
   386  * [4593](https://github.com/grafana/loki/pull/4593) **taisho6339**: Respect gRPC context error when handling errors
   387  * [4592](https://github.com/grafana/loki/pull/4592) **owen-d**: introduces "entry too far behind" instrumentation for unordered writes
   388  * [4589](https://github.com/grafana/loki/pull/4589) **owen-d**: replaces fallthrough statement in InitFrontend
   389  * [4586](https://github.com/grafana/loki/pull/4586) **dannykopping**: Configuring query-frontend interface names with loopback device
   390  * [4585](https://github.com/grafana/loki/pull/4585) **sandeepsukhani**: set wal dir to /loki/wal in docker config
   391  * [4577](https://github.com/grafana/loki/pull/4577) **taisho6339**: Respect shard number in series api
   392  * [4574](https://github.com/grafana/loki/pull/4574) **slim-bean**: Loki: Add a ring to the compactor used to control concurrency when not running standalone
   393  * [4573](https://github.com/grafana/loki/pull/4573) **sandeepsukhani**: validate default limits config with other configs at startup
   394  * [4570](https://github.com/grafana/loki/pull/4570) **DylanGuedes**: Loki: Append loopback to ingester net interface default list
   395  * [4569](https://github.com/grafana/loki/pull/4569) **DylanGuedes**: Config: Change default RejectOldSamplesMaxAge from 14d to 7d
   396  * [4563](https://github.com/grafana/loki/pull/4563) **cyriltovena**: Fixes the Series function to handle properly sharding.
   397  * [4554](https://github.com/grafana/loki/pull/4554) **cyriltovena**: Fixes a panic in the labels API when no parameters are supplied.
   398  * [4550](https://github.com/grafana/loki/pull/4550) **cyriltovena**: Fixes an edge case in the batch chunk iterator.
   399  * [4546](https://github.com/grafana/loki/pull/4546) **slim-bean**: Loki: Apply the ingester ring config to all other rings (distributor, ruler, query-scheduler)
   400  * [4545](https://github.com/grafana/loki/pull/4545) **trevorwhitney**: Fix race condition in Query Scheduler ring with frontend/worker
   401  * [4543](https://github.com/grafana/loki/pull/4543) **trevorwhitney**: Change a few default config values and improve application of common storage config
   402  * [4542](https://github.com/grafana/loki/pull/4542) **owen-d**: only exports tenant limits which differ from defaults and export defa…
   403  * [4531](https://github.com/grafana/loki/pull/4531) **JordanRushing**: Add quick nil check in TenantLimits for runtime_config
   404  * [4529](https://github.com/grafana/loki/pull/4529) **owen-d**: correctly sets subservicesWatcher on scheduler
   405  * [4525](https://github.com/grafana/loki/pull/4525) **owen-d**: Safely checks read ring for potentially nil scheduler
   406  * [4524](https://github.com/grafana/loki/pull/4524) **dannykopping**: Clarify error message when no valid target scrape config is defined for `promtail` job
   407  * [4520](https://github.com/grafana/loki/pull/4520) **JordanRushing**: Introduce `overrides-exporter` module to Loki
   408  * [4519](https://github.com/grafana/loki/pull/4519) **DylanGuedes**: Loki: Enable FIFO cache by default
   409  * [4518](https://github.com/grafana/loki/pull/4518) **slim-bean**: Loki: Fix bug where items are returned to a sync.Pool incorrectly
   410  * [4510](https://github.com/grafana/loki/pull/4510) **lingpeng0314**: add group_{left,right} to LogQL
   411  * [4508](https://github.com/grafana/loki/pull/4508) **trevorwhitney**: Apply better defaults when boltdb shipper is being used
   412  * [4498](https://github.com/grafana/loki/pull/4498) **trevorwhitney**: Feature: add virtual read and write targets
   413  * [4487](https://github.com/grafana/loki/pull/4487) **cstyan**: Update go.mod to go 1.17
   414  * [4484](https://github.com/grafana/loki/pull/4484) **dannykopping**: Replacing go-kit/kit/log with go-kit/log
   415  * [4482](https://github.com/grafana/loki/pull/4482) **owen-d**: always expose loki_build_info
   416  * [4479](https://github.com/grafana/loki/pull/4479) **owen-d**: restores for state at seconds(now-forDuration)
   417  * [4478](https://github.com/grafana/loki/pull/4478) **replay**: Update cortex to newer version
   418  * [4473](https://github.com/grafana/loki/pull/4473) **trevorwhitney**: Configuration: add a common config section for object storage
   419  * [4457](https://github.com/grafana/loki/pull/4457) **kavirajk**: Fix return values of Matrix and Vector during query range in QueryShardingMiddleware
   420  * [4453](https://github.com/grafana/loki/pull/4453) **liguozhong**: [querier] s3: add getObject retry
   421  * [4446](https://github.com/grafana/loki/pull/4446) **garrettlish**: make LogQL syntax scope from private to public
   422  * [4443](https://github.com/grafana/loki/pull/4443) **DylanGuedes**: Loki: Change how push API checks for contentType
   423  * [4440](https://github.com/grafana/loki/pull/4440) **DylanGuedes**: Loki: Override distributor's default ring KV store
   424  * [4437](https://github.com/grafana/loki/pull/4437) **dannykopping**: Ruler: Do not clear remote-write HTTP client config
   425  * [4436](https://github.com/grafana/loki/pull/4436) **JordanRushing**: Add metric prefix changes for chunk store and runtime config to upgrading.md
   426  * [4435](https://github.com/grafana/loki/pull/4435) **trevorwhitney**: Change default values for two GRPC setting we have to set so the queriers can connect to a frontend or scheduler
   427  * [4433](https://github.com/grafana/loki/pull/4433) **trevorwhitney**: Add more tests around config parsing changes from common config PR
   428  * [4432](https://github.com/grafana/loki/pull/4432) **owen-d**: tests checkpoints immediately and gives more of a time buffer
   429  * [4431](https://github.com/grafana/loki/pull/4431) **dannykopping**: Ruler: Overwrite instead of merge remote-write headers
   430  * [4429](https://github.com/grafana/loki/pull/4429) **dannykopping**: Ruler: Refactoring remote-write config overrides
   431  * [4424](https://github.com/grafana/loki/pull/4424) **slim-bean**: Loki: Add a ring to the query scheduler to allow discovery via the ring as an alternative to DNS
   432  * [4421](https://github.com/grafana/loki/pull/4421) **owen-d**: Safe per tenant overrides loading
   433  * [4415](https://github.com/grafana/loki/pull/4415) **DylanGuedes**: Loki: Change default limits to common values
   434  * [4413](https://github.com/grafana/loki/pull/4413) **trevorwhitney**: add compactor working dir to auto-configured file paths
   435  * [4411](https://github.com/grafana/loki/pull/4411) **slim-bean**: Loki: Bug: frontend waiting on results which would never come
   436  * [4400](https://github.com/grafana/loki/pull/4400) **trevorwhitney**: auto-apply memberlist ring config when join_members provided
   437  * [4391](https://github.com/grafana/loki/pull/4391) **garrettlish**: add on and ignoring clauses in binOpExpr
   438  * [4388](https://github.com/grafana/loki/pull/4388) **trevorwhitney**: default chunk target size to ~1MB~ 1.5MB
   439  * [4367](https://github.com/grafana/loki/pull/4367) **owen-d**: removes deprecated duplicate per stream rate limit fields
   440  * [4364](https://github.com/grafana/loki/pull/4364) **dannykopping**: Ruler: improve control over marshaling relabel.Config
   441  * [4354](https://github.com/grafana/loki/pull/4354) **dannykopping**: Ruler: adding `pkg/metrics` from agent
   442  * [4349](https://github.com/grafana/loki/pull/4349) **JordanRushing**: Add recovery middleware to Ingester; re-add recovery middleware to Querier when not running in standalone mode
   443  * [4348](https://github.com/grafana/loki/pull/4348) **trevorwhitney**: allow ingester and distributor to run on same instance
   444  * [4347](https://github.com/grafana/loki/pull/4347) **slim-bean**: Loki: Common Config
   445  * [4344](https://github.com/grafana/loki/pull/4344) **dannykopping**: Ruler: per-tenant WAL
   446  * [4327](https://github.com/grafana/loki/pull/4327) **aknuds1**: Chore: Use dskit/limiter
   447  * [4322](https://github.com/grafana/loki/pull/4322) **owen-d**: Hotfix #4308 into k62
   448  * [4321](https://github.com/grafana/loki/pull/4321) **owen-d**: Hotfix #4308 into k61
   449  * [4313](https://github.com/grafana/loki/pull/4313) **aknuds1**: Chore: Use middleware package from dskit
   450  * [4312](https://github.com/grafana/loki/pull/4312) **aknuds1**: Chore: Use dskit/grpcclient
   451  * [4308](https://github.com/grafana/loki/pull/4308) **cyriltovena**: Fixes the pattern parser validation.
   452  * [4304](https://github.com/grafana/loki/pull/4304) **aknuds1**: Chore: Reformat Go files
   453  * [4302](https://github.com/grafana/loki/pull/4302) **cyriltovena**: Fixes a bug in the block cache code.
   454  * [4301](https://github.com/grafana/loki/pull/4301) **trevorwhitney**: Feature: allow querier and query frontend targets to run on same process
   455  * [4295](https://github.com/grafana/loki/pull/4295) **aknuds1**: Chore: Upgrade dskit
   456  * [4289](https://github.com/grafana/loki/pull/4289) **kavirajk**: Add custom UnmarshalJSON for bytesize type
   457  * [4282](https://github.com/grafana/loki/pull/4282) **chaudum**: Chore: Update Cortex and use kv package from grafana/dskit
   458  * [4276](https://github.com/grafana/loki/pull/4276) **chaudum**: Export MemberlistKV field on Loki struct
   459  * [4272](https://github.com/grafana/loki/pull/4272) **taisho6339**: Add count to 'loki_ingester_memory_chunks' when recovery from wal
   460  * [4265](https://github.com/grafana/loki/pull/4265) **owen-d**: remove empty streams after wal replay
   461  * [4255](https://github.com/grafana/loki/pull/4255) **owen-d**: replaces old cortex_chunk_store prefix with loki_chunk_store
   462  * [4253](https://github.com/grafana/loki/pull/4253) **JordanRushing**: Change prefix for `runtimeconfig` metrics from `cortex_` to `loki_`
   463  * [4251](https://github.com/grafana/loki/pull/4251) **dannykopping**: Runtime config: do not validate nil limits
   464  * [4246](https://github.com/grafana/loki/pull/4246) **JordanRushing**:     Add missing `Inc()` to correctly increment the `dropStage.dropCount` metric on valid dropped log line; update related docs
   465  * [4240](https://github.com/grafana/loki/pull/4240) **bboreham**: Simplify Distributor.push
   466  * [4238](https://github.com/grafana/loki/pull/4238) **liguozhong**: [fix] distributor: fix goroutine leak
   467  * [4236](https://github.com/grafana/loki/pull/4236) **owen-d**: better per stream rate limits configuration options
   468  * [4228](https://github.com/grafana/loki/pull/4228) **owen-d**: bumps per stream default rate limits
   469  * [4227](https://github.com/grafana/loki/pull/4227) **aknuds1**: Chore: Use runtimeconfig from dskit
   470  * [4225](https://github.com/grafana/loki/pull/4225) **aknuds1**: Flagext: Use flagext package from dskit
   471  * [4213](https://github.com/grafana/loki/pull/4213) **owen-d**: Refactor per stream rate limit
   472  * [4212](https://github.com/grafana/loki/pull/4212) **owen-d**: WAL replay discard metrics
   473  * [4211](https://github.com/grafana/loki/pull/4211) **BenoitKnecht**: pkg/storage/chunk/aws: Add s3.http.ca-file option
   474  * [4207](https://github.com/grafana/loki/pull/4207) **cstyan**: Improve error message for stream rate limit.
   475  * [4196](https://github.com/grafana/loki/pull/4196) **56quarters**: Chore: Use services and modules from grafana/dskit
   476  * [4193](https://github.com/grafana/loki/pull/4193) **owen-d**: adds loki_ingester_wal_replay_active metric and records this more acc…
   477  * [4192](https://github.com/grafana/loki/pull/4192) **owen-d**: Cleanup/unordered writes ingester config
   478  * [4191](https://github.com/grafana/loki/pull/4191) **cstyan**: [ingester/stream]: Add a byte stream rate limit.
   479  * [4188](https://github.com/grafana/loki/pull/4188) **aknuds1**: Chore: Upgrade to latest Cortex
   480  * [4185](https://github.com/grafana/loki/pull/4185) **sandeepsukhani**: Canary: allow setting tenant id for querying logs from loki
   481  * [4181](https://github.com/grafana/loki/pull/4181) **owen-d**: initiate grpc health check always
   482  * [4176](https://github.com/grafana/loki/pull/4176) **sokoide**: Authc/z: Enable grpc_client_config to allow mTLS
   483  * [4172](https://github.com/grafana/loki/pull/4172) **sandeepsukhani**: Retention speedup
   484  * [4160](https://github.com/grafana/loki/pull/4160) **owen-d**: safely close nonOverlapping iterators
   485  * [4155](https://github.com/grafana/loki/pull/4155) **owen-d**: Auth followup - Remove unused
   486  * [4153](https://github.com/grafana/loki/pull/4153) **owen-d**: uses more fleshed out cortex auth utility & adds new auth-ignored routes
   487  * [4149](https://github.com/grafana/loki/pull/4149) **owen-d**: add unordered writes to local config
   488  * [4141](https://github.com/grafana/loki/pull/4141) **dannykopping**: Ruler: write meaningful logs when remote-write is disabled or is misconfigured
   489  * [4135](https://github.com/grafana/loki/pull/4135) **slim-bean**: Build: Fix build version info
   490  * [4132](https://github.com/grafana/loki/pull/4132) **owen-d**: Promote/ruler api
   491  * [4130](https://github.com/grafana/loki/pull/4130) **owen-d**: Tenant/unordered
   492  * [4128](https://github.com/grafana/loki/pull/4128) **sandeepsukhani**: add a storage client for boltdb-shipper which would do all the object key management for storage operations
   493  * [4126](https://github.com/grafana/loki/pull/4126) **cstyan**: Allow for loki-canary to generate a percentage of out of order log lines
   494  * [4114](https://github.com/grafana/loki/pull/4114) **owen-d**: Stream iterators account for unordered data
   495  * [4111](https://github.com/grafana/loki/pull/4111) **owen-d**: ingester.index-shards config
   496  * [4107](https://github.com/grafana/loki/pull/4107) **sandeepsukhani**: fix finding tables which would have out of retention data
   497  * [4104](https://github.com/grafana/loki/pull/4104) **owen-d**: Discard/ooo
   498  * [4071](https://github.com/grafana/loki/pull/4071) **jeschkies**: Support frontend V2 with query scheduler.
   499  
   500  #### Promtail
   501  * [4599](https://github.com/grafana/loki/pull/4599) **rsteneteg**: [Promtail] resolve issue with promtail not scraping target if only path changed in a simpler way that dont need mutex to sync threads
   502  * [4588](https://github.com/grafana/loki/pull/4588) **owen-d**: regenerates assets from current vfsgen dependency
   503  * [4568](https://github.com/grafana/loki/pull/4568) **cyriltovena**: Promtail Kafka target
   504  * [4567](https://github.com/grafana/loki/pull/4567) **cyriltovena**: Refactor client configs in Promtail.
   505  * [4556](https://github.com/grafana/loki/pull/4556) **james-callahan**: promtail: no need for GCP promtail_instance label now that loki supports out-of-order writes
   506  * [4516](https://github.com/grafana/loki/pull/4516) **lizzzcai**: promtail: update promtail base image to debian:bullseye-slim
   507  * [4507](https://github.com/grafana/loki/pull/4507) **dannykopping**: Promtail: allow for customisable stream lag labels
   508  * [4495](https://github.com/grafana/loki/pull/4495) **sankalp-r**: Promtail: add static labels in stage
   509  * [4461](https://github.com/grafana/loki/pull/4461) **rsteneteg**: Promtail: fix filetarget to not be stuck if no files was detected on startup
   510  * [4346](https://github.com/grafana/loki/pull/4346) **sandeepsukhani**: add logfmt promtail stage to be able to extract data from logfmt formatted log
   511  * [4336](https://github.com/grafana/loki/pull/4336) **ldb**: clients/promtail: Add ndjson and plaintext formats to loki_push
   512  * [4235](https://github.com/grafana/loki/pull/4235) **kavirajk**: Add metrics for gcplog scrape.
   513  * [3907](https://github.com/grafana/loki/pull/3907) **johanfleury**: promtail: add support for TLS/mTLS in syslog receiver
   514  
   515  #### Logcli
   516  * [4303](https://github.com/grafana/loki/pull/4303) **cyriltovena**: Allow to run local boltdb queries with logcli.
   517  * [4242](https://github.com/grafana/loki/pull/4242) **chaudum**: cli: Register configuration option `store.max-look-back-period` as CLI argument
   518  * [4203](https://github.com/grafana/loki/pull/4203) **invidian**: cmd/logcli: add --follow flag as an alias for --tail
   519  
   520  #### Build
   521  * [4639](https://github.com/grafana/loki/pull/4639) **slim-bean**: Build: simplify how protos are built
   522  * [4609](https://github.com/grafana/loki/pull/4609) **slim-bean**: Build: Update CODEOWNERS to put Karen back in charge of the docs
   523  * [4541](https://github.com/grafana/loki/pull/4541) **cstyan**: Fix drone ECR publish.
   524  * [4481](https://github.com/grafana/loki/pull/4481) **cstyan**: Update golang and loki-build-image image versions.
   525  * [4480](https://github.com/grafana/loki/pull/4480) **cstyan**: Add drone build job for lambda-promtail images.
   526  * [4462](https://github.com/grafana/loki/pull/4462) **cstyan**: Update loki-build-image to drone 1.4.0
   527  * [4373](https://github.com/grafana/loki/pull/4373) **jeschkies**: Instruct how to sign `drone.yml`.
   528  * [4358](https://github.com/grafana/loki/pull/4358) **JordanRushing**: Add DroneCI pipeline stage to validate loki example configs; create example configuration files
   529  * [4353](https://github.com/grafana/loki/pull/4353) **dannykopping**: CI: Fixing linter deprecations
   530  * [4286](https://github.com/grafana/loki/pull/4286) **slim-bean**: Build: Tweak stalebot message
   531  * [4252](https://github.com/grafana/loki/pull/4252) **slim-bean**: Build: update stalebot message to be more descriptive and friendlier
   532  * [4226](https://github.com/grafana/loki/pull/4226) **aknuds1**: Makefile: Add format target
   533  * [4220](https://github.com/grafana/loki/pull/4220) **slim-bean**: Build: Add github action backport workflow
   534  * [4189](https://github.com/grafana/loki/pull/4189) **mathew-fleisch**: Makefile: Add darwin/arm64 build to release binaries
   535  
   536  #### Project
   537  * [4535](https://github.com/grafana/loki/pull/4535) **carlpett**: Fix branch reference in PR template
   538  * [4604](https://github.com/grafana/loki/pull/4604) **kavirajk**: Update PR template to include `changelog` update in the checklist
   539  * [4494](https://github.com/grafana/loki/pull/4494) **cstyan**: Add a a parameter to keep/drop the stream label from cloudwatch.
   540  * [4315](https://github.com/grafana/loki/pull/4315) **cstyan**: Rewrite lambda-promtail to use subscription filters.
   541  
   542  #### Dashboards
   543  * [4634](https://github.com/grafana/loki/pull/4634) **cyriltovena**: Fixes the operational dashboard using an old metric.
   544  * [4618](https://github.com/grafana/loki/pull/4618) **cstyan**: loki-mixin: fix label selectors + logs dashboard
   545  * [4575](https://github.com/grafana/loki/pull/4575) **dannykopping**: Adding recording rules dashboard
   546  * [4441](https://github.com/grafana/loki/pull/4441) **owen-d**: Revert "loki-mixin: use centralized configuration for dashboard matchers / selectors"
   547  * [4438](https://github.com/grafana/loki/pull/4438) **dannykopping**: Dashboards: adding "logs" into regex
   548  * [4423](https://github.com/grafana/loki/pull/4423) **cstyan**: Add tag/link fix to operational dashboard and promtail mixin dashboard.
   549  * [4401](https://github.com/grafana/loki/pull/4401) **cstyan**: Minor dashboard fixes
   550  
   551  
   552  #### Docker-driver
   553  * [4396](https://github.com/grafana/loki/pull/4396) **owen-d**: Removes docker driver empty log line message
   554  * [4190](https://github.com/grafana/loki/pull/4190) **jeschkies**: Document known Docker driver issues.
   555  
   556  #### FluentD
   557  * [4261](https://github.com/grafana/loki/pull/4261) **MrWong99**: FluentD output plugin: Remove an unused variable when processing chunks
   558  
   559  #### Docs
   560  * [4646](https://github.com/grafana/loki/pull/4646) **KMiller-Grafana**: Docs: revise modes of operation section
   561  * [4631](https://github.com/grafana/loki/pull/4631) **kavirajk**: Add changelog and upgrade guide for #4556
   562  * [4616](https://github.com/grafana/loki/pull/4616) **owen-d**: index-gw sts doc fix. closes #4583
   563  * [4612](https://github.com/grafana/loki/pull/4612) **surdaft**: Docs: Fix typo in docs
   564  * [4611](https://github.com/grafana/loki/pull/4611) **KMiller-Grafana**: Docs: revise incendiary language added in PR 4507
   565  * [4601](https://github.com/grafana/loki/pull/4601) **mustafacansevinc**: docs: fix promtail docs links in loki installation page
   566  * [4597](https://github.com/grafana/loki/pull/4597) **owen-d**: a few doc fixes in preparation for 2.4
   567  * [4590](https://github.com/grafana/loki/pull/4590) **owen-d**: improves grouping docs examples
   568  * [4579](https://github.com/grafana/loki/pull/4579) **DylanGuedes**: Docs: Modify modes of operation image
   569  * [4576](https://github.com/grafana/loki/pull/4576) **DylanGuedes**: Rename hybrid mode to simple scalable mode
   570  * [4566](https://github.com/grafana/loki/pull/4566) **dannykopping**: Documenting recording rules per-tenant WAL
   571  * [4565](https://github.com/grafana/loki/pull/4565) **DylanGuedes**: Docs: Add virtual targets docs
   572  * [4559](https://github.com/grafana/loki/pull/4559) **chri2547**: docs: Update curl POST  example in docs
   573  * [4548](https://github.com/grafana/loki/pull/4548) **cstyan**: Improve lambda-promtail docs based on Owens review.
   574  * [4540](https://github.com/grafana/loki/pull/4540) **JordanRushing**: Update CHANGELOG.md and /docs with info on new `overrides-exporter` module for Loki
   575  * [4539](https://github.com/grafana/loki/pull/4539) **cstyan**: Modify lambda-promtail docs based on rewrite.
   576  * [4527](https://github.com/grafana/loki/pull/4527) **yangkb09**: Docs: add missing quote to log_queries.md
   577  * [4521](https://github.com/grafana/loki/pull/4521) **owen-d**: brings storage architecture up to date
   578  * [4499](https://github.com/grafana/loki/pull/4499) **vdm**: Docs: Remove ListObjects S3 permission
   579  * [4493](https://github.com/grafana/loki/pull/4493) **DylanGuedes**: Docs: Move rule storages configs to their own sections
   580  * [4486](https://github.com/grafana/loki/pull/4486) **KMiller-Grafana**: Docs: correct the page parameter in the Grafana Cloud advertisement
   581  * [4485](https://github.com/grafana/loki/pull/4485) **DylanGuedes**: Document the common config section
   582  * [4422](https://github.com/grafana/loki/pull/4422) **KMiller-Grafana**: Docs: revise wording of Grafana Cloud advertisement
   583  * [4417](https://github.com/grafana/loki/pull/4417) **KMiller-Grafana**: Docs: remove empty section "Generic placeholders"
   584  * [4416](https://github.com/grafana/loki/pull/4416) **KMiller-Grafana**: Docs: correctly represent product name
   585  * [4403](https://github.com/grafana/loki/pull/4403) **KMiller-Grafana**: Docs: introduce a fundamentals section
   586  * [4399](https://github.com/grafana/loki/pull/4399) **KMiller-Grafana**: Docs: prominently advertise free Grafana Cloud availability
   587  * [4374](https://github.com/grafana/loki/pull/4374) **KMiller-Grafana**: Docs: clarify distinction between single binary and microservices.
   588  * [4363](https://github.com/grafana/loki/pull/4363) **KMiller-Grafana**: Docs: Remove wording like "As of version 1.6, you can..."
   589  * [4361](https://github.com/grafana/loki/pull/4361) **JasonGiedymin**: fix(docs): spelling mistake
   590  * [4357](https://github.com/grafana/loki/pull/4357) **carehart**: Correct typo
   591  * [4345](https://github.com/grafana/loki/pull/4345) **pr0PM**: Deduplicating the compactor docs
   592  * [4342](https://github.com/grafana/loki/pull/4342) **KMiller-Grafana**: Docs: Organize and edit the LogQL section
   593  * [4324](https://github.com/grafana/loki/pull/4324) **lingenavd**: Docs: Update _index.md to add value boltdb-shipper for the key store
   594  * [4320](https://github.com/grafana/loki/pull/4320) **KMiller-Grafana**: Docs: improve spelling, grammar, and formatting.
   595  * [4310](https://github.com/grafana/loki/pull/4310) **dannykopping**: Correcting documentation example for `/api/prom/query`
   596  * [4309](https://github.com/grafana/loki/pull/4309) **GneyHabub**: Docs: Fix a link
   597  * [4294](https://github.com/grafana/loki/pull/4294) **mr-karan**: docs:  (logs-deletion.md) URL Encode curl command
   598  * [4293](https://github.com/grafana/loki/pull/4293) **Birdi7**: docs: fix link to Promtail documentation
   599  * [4283](https://github.com/grafana/loki/pull/4283) **SeriousM**: Correct the indention for azure storage configuration
   600  * [4277](https://github.com/grafana/loki/pull/4277) **ivanahuckova**: Update example for /series endpoint in _index.md
   601  * [4247](https://github.com/grafana/loki/pull/4247) **KMiller-Grafana**: Docs: inject newlines for configuration section readability
   602  * [4245](https://github.com/grafana/loki/pull/4245) **KMiller-Grafana**: Docs: revise max_query_lookback knob definition
   603  * [4244](https://github.com/grafana/loki/pull/4244) **JordanRushing**: Update limits_config docs to include querier.max_query_lookback flag
   604  * [4237](https://github.com/grafana/loki/pull/4237) **KMiller-Grafana**: Docs: first draft, Loki accepts out-of-order writes
   605  * [4231](https://github.com/grafana/loki/pull/4231) **Aletor93**: doc: fix typo on loki-external-labels for docker client labels
   606  * [4222](https://github.com/grafana/loki/pull/4222) **KMiller-Grafana**: Docs: minor improvements to Loki Canary docs
   607  * [4208](https://github.com/grafana/loki/pull/4208) **cstyan**: Update tanka installation docs to refer to tanka section about `jb`
   608  * [4206](https://github.com/grafana/loki/pull/4206) **jeschkies**: Link Kubernetes service discovery configuration.
   609  * [4199](https://github.com/grafana/loki/pull/4199) **owen-d**: fixes typo
   610  * [4184](https://github.com/grafana/loki/pull/4184) **mcdeck**: Update docker.md
   611  * [4175](https://github.com/grafana/loki/pull/4175) **KMiller-Grafana**: Docs: correct path to Promtail configuration file
   612  * [4163](https://github.com/grafana/loki/pull/4163) **smuth4**: Docs: Update docker install to work out of the box
   613  * [4152](https://github.com/grafana/loki/pull/4152) **charles-woshicai**: Docs: example about using azure storage account as storage
   614  * [4147](https://github.com/grafana/loki/pull/4147) **KMiller-Grafana**: Docs: fluentd client phrasing and formatting
   615  * [4145](https://github.com/grafana/loki/pull/4145) **KMiller-Grafana**: Docs: improve LogQL section
   616  * [4134](https://github.com/grafana/loki/pull/4134) **KMiller-Grafana**: Docs: revise section header (out of order writes)
   617  * [4131](https://github.com/grafana/loki/pull/4131) **owen-d**: updates unordered writes config docs
   618  * [4125](https://github.com/grafana/loki/pull/4125) **owen-d**: Initial out of order docs
   619  * [4122](https://github.com/grafana/loki/pull/4122) **yasharne**: update boltdb-shipper index period
   620  * [4120](https://github.com/grafana/loki/pull/4120) **vitaliyf**: Docs: Fix broken "Upgrading" link
   621  * [4113](https://github.com/grafana/loki/pull/4113) **KMiller-Grafana**: Docs: Fix typos and grammar. Inject newlines for readability.
   622  * [4112](https://github.com/grafana/loki/pull/4112) **slim-bean**: Docs: updated changelog and references to 2.3
   623  * [4100](https://github.com/grafana/loki/pull/4100) **jeschkies**: Document operation with the query scheduler.
   624  * [4088](https://github.com/grafana/loki/pull/4088) **KMiller-Grafana**: Update Loki README with better links and descriptions
   625  * [3880](https://github.com/grafana/loki/pull/3880) **timothydlister**: Update fluent-plugin-loki documentation URLs
   626  
   627  #### Jsonnet
   628  * [4629](https://github.com/grafana/loki/pull/4629) **owen-d**: Default wal to enabled in jsonnet lib
   629  * [4624](https://github.com/grafana/loki/pull/4624) **chaudum**: Disable chunk transfers in jsonnet lib
   630  * [4530](https://github.com/grafana/loki/pull/4530) **owen-d**: Jsonnet/overrides exporter
   631  * [4496](https://github.com/grafana/loki/pull/4496) **jeschkies**: Use different metrics for `PromtailFileLagging`.
   632  * [4405](https://github.com/grafana/loki/pull/4405) **jdbaldry**: fix: Correct grafana-token creation command
   633  * [4279](https://github.com/grafana/loki/pull/4279) **kevinschoonover**: loki-mixin: use centralized configuration for dashboard matchers / selectors
   634  * [4259](https://github.com/grafana/loki/pull/4259) **eamonryan**: Jsonnet: Update license path argument name
   635  * [4217](https://github.com/grafana/loki/pull/4217) **Duologic**: fix(rules): upstream recording rule switched to sum_irate
   636  * [4182](https://github.com/grafana/loki/pull/4182) **owen-d**: fine tune grpc configs jsonnet
   637  * [4180](https://github.com/grafana/loki/pull/4180) **owen-d**: corrects query scheduler image
   638  * [4165](https://github.com/grafana/loki/pull/4165) **jdbaldry**: Jsonnet: Add Grafana Enterprise Logs library
   639  * [4154](https://github.com/grafana/loki/pull/4154) **owen-d**: updates scheduler libsonnet
   640  * [4102](https://github.com/grafana/loki/pull/4102) **jeschkies**: Define ksonnet lib for query scheduler.
   641  
   642  
   643  ### Notes
   644  
   645  This release was created from a branch starting at commit e95d193acf1633a6ec33a328b8a4a3d844e8e5f9 but it may also contain backported changes from main.
   646  
   647  Check the history of the branch `release-2.4`.
   648  
   649  ### Dependencies
   650  
   651  * Go Version:     1.17.2
   652  * Cortex Version: 3f329a21cad432325268717eecf2b77c8d95150f
   653  
   654  # 2.3.0 (2021/08/06)
   655  
   656  Release notes for 2.3.0 can be found on the [release notes page](https://grafana.com/docs/loki/latest/release-notes/v2-3/)
   657  
   658  ### All Changes
   659  
   660  #### Loki
   661  * [4048](https://github.com/grafana/loki/pull/4048) **dannykopping**: Ruler: implementing write relabelling on recording rule samples
   662  * [4091](https://github.com/grafana/loki/pull/4091) **cyriltovena**: Fixes instant queries in the frontend.
   663  * [4087](https://github.com/grafana/loki/pull/4087) **cyriltovena**: Fixes unaligned shards between ingesters and storage.
   664  * [4047](https://github.com/grafana/loki/pull/4047) **cyriltovena**: Add min_sharding_lookback limits to the frontends
   665  * [4027](https://github.com/grafana/loki/pull/4027) **jdbaldry**: fix: Restore /config endpoint and correct handlerFunc for buildinfo
   666  * [4020](https://github.com/grafana/loki/pull/4020) **simonswine**: Restrict path segments in TenantIDs (CVE-2021-36156 CVE-2021-36157)
   667  * [4019](https://github.com/grafana/loki/pull/4019) **cyriltovena**: Improve decoding of JSON responses.
   668  * [4018](https://github.com/grafana/loki/pull/4018) **sandeepsukhani**: Compactor improvements
   669  * [4017](https://github.com/grafana/loki/pull/4017) **aknuds1**: Chore: Upgrade Prometheus and Cortex
   670  * [3996](https://github.com/grafana/loki/pull/3996) **owen-d**: fixes a badly referenced variable name in StepEvaluator code
   671  * [3995](https://github.com/grafana/loki/pull/3995) **owen-d**: Headblock interop
   672  * [3992](https://github.com/grafana/loki/pull/3992) **MichelHollands**: Update Cortex version
   673  * [3991](https://github.com/grafana/loki/pull/3991) **periklis**: Add LogQL AST walker
   674  * [3990](https://github.com/grafana/loki/pull/3990) **cyriltovena**: Intern label keys for LogQL parser.
   675  * [3986](https://github.com/grafana/loki/pull/3986) **kavirajk**: Ip matcher for LogQL
   676  * [3984](https://github.com/grafana/loki/pull/3984) **jeschkies**: Filter instant queries and shard them.
   677  * [3983](https://github.com/grafana/loki/pull/3983) **cyriltovena**: Reject labels with invalid runes when using implicit extraction parser.
   678  * [3981](https://github.com/grafana/loki/pull/3981) **owen-d**: fixes chunk size method in facade
   679  * [3979](https://github.com/grafana/loki/pull/3979) **MichelHollands**: Add a chunk filterer field to the config
   680  * [3977](https://github.com/grafana/loki/pull/3977) **sandeepsukhani**: add a metric for counting number of failures in opening existing active index files
   681  * [3976](https://github.com/grafana/loki/pull/3976) **sandeepsukhani**: fix flaky retention tests
   682  * [3974](https://github.com/grafana/loki/pull/3974) **owen-d**: WAL Replay counter
   683  * [3973](https://github.com/grafana/loki/pull/3973) **56quarters**: Use the Cortex wrapper for getting tenant ID from a context
   684  * [3972](https://github.com/grafana/loki/pull/3972) **jeschkies**: Return build info under `/loki/api/v1/status/buildinfo`.
   685  * [3970](https://github.com/grafana/loki/pull/3970) **sandeepsukhani**: log name of the file failed to open during startup by ingester
   686  * [3969](https://github.com/grafana/loki/pull/3969) **sandeepsukhani**: add some tests in compactor and fix a bug in IntervalHasExpiredChunks check in retention with tests
   687  * [3968](https://github.com/grafana/loki/pull/3968) **cyriltovena**: Improve head chunk allocations when reading samples.
   688  * [3967](https://github.com/grafana/loki/pull/3967) **sandeepsukhani**: fix a panic in compactor when retention is not enabled
   689  * [3966](https://github.com/grafana/loki/pull/3966) **sandeepsukhani**: fix panic in compactor when retention is not enabled
   690  * [3957](https://github.com/grafana/loki/pull/3957) **owen-d**: Unordered head block
   691  * [3949](https://github.com/grafana/loki/pull/3949) **cyriltovena**: Allow no overrides config for tenants.
   692  * [3946](https://github.com/grafana/loki/pull/3946) **cyriltovena**: Improve marker file current time metrics.
   693  * [3934](https://github.com/grafana/loki/pull/3934) **sandeepsukhani**: optimize table retetion
   694  * [3932](https://github.com/grafana/loki/pull/3932) **Timbus**: Parser: Allow literal control chars in logfmt decoder
   695  * [3929](https://github.com/grafana/loki/pull/3929) **sandeepsukhani**: remove boltdb files from ingesters on startup which do not have a index bucket
   696  * [3928](https://github.com/grafana/loki/pull/3928) **dannykopping**: Querier/Ingester: Fixing json expression parser bug
   697  * [3919](https://github.com/grafana/loki/pull/3919) **github-vincent-miszczak**: Add ingester.autoforget-unhealthy-timeout opt-in feature
   698  * [3888](https://github.com/grafana/loki/pull/3888) **kavirajk**: Make `overrides` configmap names and mount path as variables.
   699  * [3871](https://github.com/grafana/loki/pull/3871) **kavirajk**: Add explict syntax for using `pattern` parser
   700  * [3865](https://github.com/grafana/loki/pull/3865) **sandeepsukhani**: feat: index-gateway for boltdb-shipper index store
   701  * [3856](https://github.com/grafana/loki/pull/3856) **cyriltovena**: Shards Series API.
   702  * [3852](https://github.com/grafana/loki/pull/3852) **cyriltovena**: Shard ingester queries.
   703  * [3849](https://github.com/grafana/loki/pull/3849) **cyriltovena**: Logs ingester and store queries boundaries.
   704  * [3840](https://github.com/grafana/loki/pull/3840) **cyriltovena**: Add retention label to loki_distributor_bytes_received_total metrics
   705  * [3837](https://github.com/grafana/loki/pull/3837) **cyriltovena**: LogQL: Pattern Parser
   706  * [3835](https://github.com/grafana/loki/pull/3835) **sesky4**: lz4: update lz4 version to v4.1.7 to avoid possibly panic
   707  * [3833](https://github.com/grafana/loki/pull/3833) **cyriltovena**: Fixes a flaky retention test.
   708  * [3827](https://github.com/grafana/loki/pull/3827) **sandeepsukhani**: Logs deletion fixes
   709  * [3816](https://github.com/grafana/loki/pull/3816) **dannykopping**: Extracting queue interface
   710  * [3807](https://github.com/grafana/loki/pull/3807) **dannykopping**: Loki: allow for multiple targets
   711  * [3797](https://github.com/grafana/loki/pull/3797) **dannykopping**: Exposing remote writer for use in integration tests
   712  * [3792](https://github.com/grafana/loki/pull/3792) **MichelHollands**: Add a QueryFrontendTripperware module
   713  * [3785](https://github.com/grafana/loki/pull/3785) **sandeepsukhani**: just log a warning when a store type other than boltdb-shipper is detected when custom retention is enabled
   714  * [3772](https://github.com/grafana/loki/pull/3772) **sandeepsukhani**: initialize retention and deletion components only when they are enabled
   715  * [3771](https://github.com/grafana/loki/pull/3771) **sandeepsukhani**: revendor cortex to latest master
   716  * [3769](https://github.com/grafana/loki/pull/3769) **sandeepsukhani**: reduce allocs in delete requests manager by reusing slice for tracing non-deleted intervals for chunks
   717  * [3766](https://github.com/grafana/loki/pull/3766) **dannykopping**: Ruler: Recording Rules
   718  * [3763](https://github.com/grafana/loki/pull/3763) **cyriltovena**: Fixes parser labels hint for grouping.
   719  * [3762](https://github.com/grafana/loki/pull/3762) **cyriltovena**: Improve mark file processing.
   720  * [3758](https://github.com/grafana/loki/pull/3758) **owen-d**: exposes loki codec
   721  * [3746](https://github.com/grafana/loki/pull/3746) **sandeepsukhani**: Boltdb shipper deletion fixes
   722  * [3743](https://github.com/grafana/loki/pull/3743) **cyriltovena**: Replace satori.uuid with gofrs/uuid
   723  * [3736](https://github.com/grafana/loki/pull/3736) **cyriltovena**: Add fromJson to the template stage.
   724  * [3733](https://github.com/grafana/loki/pull/3733) **cyriltovena**: Fixes a goroutine leak in the store when doing cancellation.
   725  * [3706](https://github.com/grafana/loki/pull/3706) **cyriltovena**: Improve retention mark files.
   726  * [3700](https://github.com/grafana/loki/pull/3700) **slim-bean**: Loki: Add a flag for queriers to run standalone and only query store
   727  * [3693](https://github.com/grafana/loki/pull/3693) **cyriltovena**: Removes file sync syscall for compaction.
   728  * [3688](https://github.com/grafana/loki/pull/3688) **sandeepsukhani**: Logs deletion support for boltdb-shipper store
   729  * [3687](https://github.com/grafana/loki/pull/3687) **cyriltovena**: Use model.Duration for easy yaml/json marshalling.
   730  * [3686](https://github.com/grafana/loki/pull/3686) **cyriltovena**: Fixes a panic with the frontend when use with downstream URL.
   731  * [3677](https://github.com/grafana/loki/pull/3677) **cyriltovena**: Deprecate max_look_back_period in the chunk storage.
   732  * [3673](https://github.com/grafana/loki/pull/3673) **cyriltovena**: Pass in the now value to the retention.
   733  * [3672](https://github.com/grafana/loki/pull/3672) **cyriltovena**: Use pgzip in the compactor.
   734  * [3665](https://github.com/grafana/loki/pull/3665) **cyriltovena**: Trigger compaction prior retention.
   735  * [3664](https://github.com/grafana/loki/pull/3664) **owen-d**: revendor compatibility: various prom+k8s+cortex
   736  * [3643](https://github.com/grafana/loki/pull/3643) **cyriltovena**: Rejects push requests with  streams without labels.
   737  * [3642](https://github.com/grafana/loki/pull/3642) **cyriltovena**: Custom Retention
   738  * [3641](https://github.com/grafana/loki/pull/3641) **owen-d**: removes naming collision
   739  * [3632](https://github.com/grafana/loki/pull/3632) **kavirajk**: replace `time.Duration` -> `model.Duration` for `Limits`.
   740  * [3628](https://github.com/grafana/loki/pull/3628) **kavirajk**: Add json struct tags to limits.
   741  * [3627](https://github.com/grafana/loki/pull/3627) **MichelHollands**: Update cortex to 1.8
   742  * [3623](https://github.com/grafana/loki/pull/3623) **slim-bean**: Loki/Promtail: Client Refactor
   743  * [3619](https://github.com/grafana/loki/pull/3619) **liguozhong**: [ui] add '/config' page
   744  * [3618](https://github.com/grafana/loki/pull/3618) **MichelHollands**: Add interceptor override and make ingester and cfg public
   745  * [3605](https://github.com/grafana/loki/pull/3605) **sandeepsukhani**: cleanup boltdb files failing to open during loading tables which are possibly corrupt
   746  * [3603](https://github.com/grafana/loki/pull/3603) **cyriltovena**: Adds chunk filter hook for ingesters.
   747  * [3602](https://github.com/grafana/loki/pull/3602) **MichelHollands**: Loli: Make the store field public
   748  * [3595](https://github.com/grafana/loki/pull/3595) **owen-d**: locks trailers during iteration
   749  * [3594](https://github.com/grafana/loki/pull/3594) **owen-d**: adds distributor replication factor metric
   750  * [3573](https://github.com/grafana/loki/pull/3573) **cyriltovena**: Fixes a race when using specific tenant and multi-client.
   751  * [3569](https://github.com/grafana/loki/pull/3569) **cyriltovena**: Add a chunk filter hook in the store.
   752  * [3566](https://github.com/grafana/loki/pull/3566) **cyriltovena**: Properly release the ticker in Loki client.
   753  * [3564](https://github.com/grafana/loki/pull/3564) **cyriltovena**: Improve matchers validations.
   754  * [3563](https://github.com/grafana/loki/pull/3563) **sandeepsukhani**: ignore download of missing boltdb files possibly removed during compaction
   755  * [3562](https://github.com/grafana/loki/pull/3562) **cyriltovena**: Fixes a test from #3216.
   756  * [3553](https://github.com/grafana/loki/pull/3553) **cyriltovena**: Add a target to reproduce fuzz testcase
   757  * [3550](https://github.com/grafana/loki/pull/3550) **cyriltovena**: Fixes a bug in MatrixStepper when sharding queries.
   758  * [3549](https://github.com/grafana/loki/pull/3549) **MichelHollands**: LBAC changes
   759  * [3544](https://github.com/grafana/loki/pull/3544) **alrs**: single import of jsoniter in logql subpackages
   760  * [3540](https://github.com/grafana/loki/pull/3540) **cyriltovena**: Support for single step metric query.
   761  * [3532](https://github.com/grafana/loki/pull/3532) **MichelHollands**: Loki: Update cortex version and fix resulting changes
   762  * [3530](https://github.com/grafana/loki/pull/3530) **sandeepsukhani**: split series api queries by day in query-frontend
   763  * [3517](https://github.com/grafana/loki/pull/3517) **cyriltovena**: Fixes a race introduced by #3434.
   764  * [3515](https://github.com/grafana/loki/pull/3515) **cyriltovena**: Add sprig text/template functions to template stage.
   765  * [3509](https://github.com/grafana/loki/pull/3509) **sandeepsukhani**: fix live tailing of logs from Loki
   766  * [3572](https://github.com/grafana/loki/pull/3572) **slim-bean**: Loki: Distributor log message bodySize should always reflect the compressed size
   767  * [3496](https://github.com/grafana/loki/pull/3496) **owen-d**: reduce replay flush threshold
   768  * [3491](https://github.com/grafana/loki/pull/3491) **sandeepsukhani**: make prefix for keys of objects created by boltdb-shipper configurable
   769  * [3487](https://github.com/grafana/loki/pull/3487) **cyriltovena**: Set the byte slice cap correctly when unsafely converting string.
   770  * [3471](https://github.com/grafana/loki/pull/3471) **cyriltovena**: Set a max size for the logql parser to 5k.
   771  * [3470](https://github.com/grafana/loki/pull/3470) **cyriltovena**: Fixes Issue 28593: loki:fuzz_parse_expr: Timeout in fuzz_parse_expr.
   772  * [3469](https://github.com/grafana/loki/pull/3469) **cyriltovena**: Fixes out-of-memory fuzzing issue.
   773  * [3466](https://github.com/grafana/loki/pull/3466) **pracucci**: Upgrade Cortex
   774  * [3455](https://github.com/grafana/loki/pull/3455) **garrettlish**: Implement offset modifier for range vector aggregation in LogQL
   775  * [3434](https://github.com/grafana/loki/pull/3434) **adityacs**: support math functions in line_format and label_format
   776  * [3216](https://github.com/grafana/loki/pull/3216) **sandeepsukhani**: check for stream selectors to have atleast one equality matcher
   777  * [3050](https://github.com/grafana/loki/pull/3050) **cyriltovena**: first_over_time and last_over_time
   778  
   779  #### Docs
   780  * [4031](https://github.com/grafana/loki/pull/4031) **KMiller-Grafana**: Docs: add weights to YAML metadata to order the LogQL subsections
   781  * [4029](https://github.com/grafana/loki/pull/4029) **bearice**: Docs: Update S3 permissions list
   782  * [4026](https://github.com/grafana/loki/pull/4026) **KMiller-Grafana**: Docs: correct fluentbit config value for DqueSync
   783  * [4024](https://github.com/grafana/loki/pull/4024) **KMiller-Grafana**: Docs: fix bad links
   784  * [4016](https://github.com/grafana/loki/pull/4016) **lizzzcai**: <docs>:fix typo in remote debugging docs
   785  * [4012](https://github.com/grafana/loki/pull/4012) **KMiller-Grafana**: Revise portions of the docs LogQL section
   786  * [3998](https://github.com/grafana/loki/pull/3998) **owen-d**: Fixes regexReplaceAll docs
   787  * [3980](https://github.com/grafana/loki/pull/3980) **KMiller-Grafana**: Docs: Revise/update the overview section.
   788  * [3965](https://github.com/grafana/loki/pull/3965) **mamil**: fix typos
   789  * [3962](https://github.com/grafana/loki/pull/3962) **KMiller-Grafana**: Docs: added new target (docs-next) to the docs' Makefile.
   790  * [3956](https://github.com/grafana/loki/pull/3956) **sandeepsukhani**: add config and documentation about index-gateway
   791  * [3938](https://github.com/grafana/loki/pull/3938) **seiffert**: Doc: List 'compactor' as valid value for target option
   792  * [3936](https://github.com/grafana/loki/pull/3936) **lukahartwig**: Fix typo
   793  * [3921](https://github.com/grafana/loki/pull/3921) **KMiller-Grafana**: Docs: revise the LogCLI subsection
   794  * [3911](https://github.com/grafana/loki/pull/3911) **KMiller-Grafana**: Docs: Make identification of experimental items consistent and obvious
   795  * [3910](https://github.com/grafana/loki/pull/3910) **KMiller-Grafana**: Docs: add structure for a release notes section
   796  * [3909](https://github.com/grafana/loki/pull/3909) **kavirajk**: Sync `main` branch docs to `next` folder
   797  * [3899](https://github.com/grafana/loki/pull/3899) **KMiller-Grafana**: Docs: correct “ and ” with " and same with single quote mark.
   798  * [3897](https://github.com/grafana/loki/pull/3897) **kavirajk**: Update steps to release versioned docs
   799  * [3882](https://github.com/grafana/loki/pull/3882) **KMiller-Grafana**: Docs: improve section on building from source
   800  * [3876](https://github.com/grafana/loki/pull/3876) **ivanahuckova**: Documentation: Unify spelling of backtick in documentation
   801  * [3873](https://github.com/grafana/loki/pull/3873) **KMiller-Grafana**: Docs: remove duplicated arch info from the overview section
   802  * [3875](https://github.com/grafana/loki/pull/3875) **kavirajk**: Add missing `-querier.max-concurrent` config in the doc
   803  * [3868](https://github.com/grafana/loki/pull/3868) **sanadhis**: docs: http_path_prefix as correct item of server_config
   804  * [3860](https://github.com/grafana/loki/pull/3860) **KMiller-Grafana**: Docs: Correct capitalization and formatting of "Promtail"
   805  * [3851](https://github.com/grafana/loki/pull/3851) **dannykopping**: Ruler: documentation for recording rules
   806  * [3846](https://github.com/grafana/loki/pull/3846) **crockk**: Docs: Minor syntax tweaks for consistency
   807  * [3843](https://github.com/grafana/loki/pull/3843) **azuwis**: multiline: Add regex stage example and note
   808  * [3829](https://github.com/grafana/loki/pull/3829) **arempter**: Add oauth2 docs options for promtail client
   809  * [3828](https://github.com/grafana/loki/pull/3828) **julienduchesne**: Fix broken link in `Windows Event Log` scraping docs
   810  * [3826](https://github.com/grafana/loki/pull/3826) **sandeepsukhani**: docs for logs deletion feature
   811  * [3824](https://github.com/grafana/loki/pull/3824) **KMiller-Grafana**: Docs: add and order missing design docs
   812  * [3823](https://github.com/grafana/loki/pull/3823) **KMiller-Grafana**: Docs: updates
   813  * [3815](https://github.com/grafana/loki/pull/3815) **paketb0te**: Docs: fixed typo in "Loki compared to other log systems" (levels -> labels)
   814  * [3810](https://github.com/grafana/loki/pull/3810) **alegmal**: documentation:  corrected double "the the" in index.md
   815  * [3799](https://github.com/grafana/loki/pull/3799) **bt909**: docs: Add memached_client parameter "addresses" list
   816  * [3798](https://github.com/grafana/loki/pull/3798) **bt909**: docs: Change redis configuration value for enabling TLS to correct syntax
   817  * [3790](https://github.com/grafana/loki/pull/3790) **KMiller-Grafana**: Docs: remove unnecessary lists of sections
   818  * [3775](https://github.com/grafana/loki/pull/3775) **cyriltovena**: Retention doc
   819  * [3764](https://github.com/grafana/loki/pull/3764) **slim-bean**: Docs: fix makefile
   820  * [3757](https://github.com/grafana/loki/pull/3757) **fionaliao**: [docs] Remove unnecessary backtick from example
   821  * [3756](https://github.com/grafana/loki/pull/3756) **fredrikekre**: [docs] add LokiLogger.jl to unofficial clients.
   822  * [3723](https://github.com/grafana/loki/pull/3723) **oddlittlebird**: Docs: Update _index.md
   823  * [3720](https://github.com/grafana/loki/pull/3720) **fredrikekre**: [docs/clients] fix header for "Unofficial clients" and add a reference to said section.
   824  * [3715](https://github.com/grafana/loki/pull/3715) **jaddqiu**: Update troubleshooting.md
   825  * [3714](https://github.com/grafana/loki/pull/3714) **kavirajk**: Fluent-bit git repo link fix
   826  * [3713](https://github.com/grafana/loki/pull/3713) **cyriltovena**: Add a target to find dead links in our documentation.
   827  * [3690](https://github.com/grafana/loki/pull/3690) **atxviking**: API Documentation: Fix document links for /loki/api/v1/push example
   828  * [3655](https://github.com/grafana/loki/pull/3655) **trevorwhitney**: Documentation: add note about wildcard log patterns and log rotation
   829  * [3648](https://github.com/grafana/loki/pull/3648) **Ruppsn**: Update labels.md in Loki Docs
   830  * [3647](https://github.com/grafana/loki/pull/3647) **3Xpl0it3r**: fix the promtail-default-config download link in doc
   831  * [3644](https://github.com/grafana/loki/pull/3644) **periklis**: Add Red Hat to adopters
   832  * [3633](https://github.com/grafana/loki/pull/3633) **osg-grafana**: Fix wget link.
   833  * [3596](https://github.com/grafana/loki/pull/3596) **timazet**: documentation: typo correction
   834  * [3578](https://github.com/grafana/loki/pull/3578) **liguozhong**: [doc] mtric -> metric
   835  * [3576](https://github.com/grafana/loki/pull/3576) **sergeykranga**: Promtail documentation: fix template example for regexReplaceAll function
   836  * [3568](https://github.com/grafana/loki/pull/3568) **MichelHollands**: docs: some small docs fixes
   837  * [3559](https://github.com/grafana/loki/pull/3559) **klausenbusk**: Doc: Remove removed --ingester.recover-from-wal option and fix out-of-date defaults
   838  * [3555](https://github.com/grafana/loki/pull/3555) **samjewell**: LogQL Docs: Remove key-value pair missing from logfmt output
   839  * [3552](https://github.com/grafana/loki/pull/3552) **lkokila**: Update README.md
   840  * [3551](https://github.com/grafana/loki/pull/3551) **cyriltovena**: Fixes doc w/r/t grpc compression.
   841  * [3542](https://github.com/grafana/loki/pull/3542) **kavirajk**: Remove memberlist config from ring config.
   842  * [3529](https://github.com/grafana/loki/pull/3529) **Whyeasy**: Added docs for GCP internal labels.
   843  * [3525](https://github.com/grafana/loki/pull/3525) **robbymilo**: docs: add title to Lambda Promtail
   844  * [3516](https://github.com/grafana/loki/pull/3516) **cyriltovena**: Fixes broken link in the documentation.
   845  * [3513](https://github.com/grafana/loki/pull/3513) **owen-d**: fixes broken link
   846  * [3543](https://github.com/grafana/loki/pull/3543) **owen-d**: compactor docs
   847  * [3526](https://github.com/grafana/loki/pull/3526) **wardbekker**: Added Architecture Diagram
   848  * [3518](https://github.com/grafana/loki/pull/3518) **wardbekker**: fix spelling in doc
   849  * [3503](https://github.com/grafana/loki/pull/3503) **cyriltovena**: Update README.md
   850  * [3484](https://github.com/grafana/loki/pull/3484) **thomasrockhu**: Add Codecov badge to README
   851  * [3478](https://github.com/grafana/loki/pull/3478) **chancez**: docs/upgrading: Fix typo
   852  * [3477](https://github.com/grafana/loki/pull/3477) **slim-bean**: Jsonnet/Docs: update for 2.2 release
   853  * [3472](https://github.com/grafana/loki/pull/3472) **aronisstav**: Docs: Fix markdown for promtail's output stage
   854  * [3464](https://github.com/grafana/loki/pull/3464) **camilleryr**: Documentation: Update boltdb-shipper.md to fix typo
   855  * [3442](https://github.com/grafana/loki/pull/3442) **owen-d**: adds deprecation notice for chunk transfers
   856  * [3430](https://github.com/grafana/loki/pull/3430) **kavirajk**: doc(gcplog): Add note on scraping multiple GCP projects
   857  
   858  #### Promtail
   859  * [4011](https://github.com/grafana/loki/pull/4011) **dannykopping**: Promtail: adding pipeline stage inspector
   860  * [4006](https://github.com/grafana/loki/pull/4006) **dannykopping**: Promtail: output timestamp with nanosecond precision in dry-run mode
   861  * [3971](https://github.com/grafana/loki/pull/3971) **cyriltovena**: Fixes negative gauge in Promtail.
   862  * [3834](https://github.com/grafana/loki/pull/3834) **trevorwhitney**: Promtail: add consul agent service discovery
   863  * [3711](https://github.com/grafana/loki/pull/3711) **3Xpl0it3r**: add debug information for extracted data
   864  * [3683](https://github.com/grafana/loki/pull/3683) **kbudde**: promtail: added timezone to logger in dry-run mode #3679"
   865  * [3654](https://github.com/grafana/loki/pull/3654) **cyriltovena**: Adds the ability to provide a tripperware to Promtail client.
   866  * [3587](https://github.com/grafana/loki/pull/3587) **rsteneteg**: Promtail: Remove non-ready filemanager targets
   867  * [3501](https://github.com/grafana/loki/pull/3501) **kavirajk**: Add unique promtail_instance id to labels for gcptarget
   868  * [3457](https://github.com/grafana/loki/pull/3457) **nmiculinic**: Promtail: Added path information to deleted tailed file
   869  * [3400](https://github.com/grafana/loki/pull/3400) **adityacs**: support max_message_length configuration for syslog parser
   870  
   871  
   872  #### Logcli
   873  * [3879](https://github.com/grafana/loki/pull/3879) **vyzigold**: logcli: Add retries to unsuccessful log queries
   874  * [3749](https://github.com/grafana/loki/pull/3749) **dbluxo**: logcli: add support for bearer token authentication
   875  * [3739](https://github.com/grafana/loki/pull/3739) **rsteneteg**: correct logcli instant query timestamp param name
   876  * [3678](https://github.com/grafana/loki/pull/3678) **cyriltovena**: Add the ability to wrap the roundtripper of the logcli client.
   877  
   878  
   879  #### Build
   880  * [4034](https://github.com/grafana/loki/pull/4034) **aknuds1**: loki-build-image: Fix building
   881  * [4028](https://github.com/grafana/loki/pull/4028) **aknuds1**: loki-build-image: Upgrade golangci-lint and Go
   882  * [4007](https://github.com/grafana/loki/pull/4007) **dannykopping**: Adding @grafana/loki-team as default CODEOWNERS
   883  * [3997](https://github.com/grafana/loki/pull/3997) **owen-d**: aligns rule path in docker img with bundled config. closes #3952
   884  * [3950](https://github.com/grafana/loki/pull/3950) **julienduchesne**: Sign drone.yml file
   885  * [3944](https://github.com/grafana/loki/pull/3944) **jeschkies**: Lint script files.
   886  * [3941](https://github.com/grafana/loki/pull/3941) **cyriltovena**: Development Docker Compose Setup
   887  * [3935](https://github.com/grafana/loki/pull/3935) **ecraven**: Makefile: Only set PROMTAIL_CGO if CGO_ENABLED is not 0.
   888  * [3832](https://github.com/grafana/loki/pull/3832) **julienduchesne**: Add step to identify windows Drone runner
   889  * [3731](https://github.com/grafana/loki/pull/3731) **cyriltovena**: Fix website branch to trigger update.
   890  * [3708](https://github.com/grafana/loki/pull/3708) **julienduchesne**: Deploy loki with Drone plugin instead of CircleCI job
   891  * [3703](https://github.com/grafana/loki/pull/3703) **darkn3rd**: Update docker.md for 2.2.1
   892  * [3625](https://github.com/grafana/loki/pull/3625) **slim-bean**: Build: Update CI for branch rename to main
   893  * [3624](https://github.com/grafana/loki/pull/3624) **slim-bean**: Build: Fix drone dependencies on manifest step
   894  * [3615](https://github.com/grafana/loki/pull/3615) **slim-bean**: Remove codecov
   895  * [3481](https://github.com/grafana/loki/pull/3481) **slim-bean**: Update Go and Alpine versions
   896  
   897  
   898  #### Jsonnet
   899  * [4030](https://github.com/grafana/loki/pull/4030) **cyriltovena**: Improve the sweep lag panel in the retention dashboard.
   900  * [3917](https://github.com/grafana/loki/pull/3917) **jvrplmlmn**: refactor(production/ksonnet): Remove kausal from the root element
   901  * [3893](https://github.com/grafana/loki/pull/3893) **sandeepsukhani**: update uid of loki-deletion dashboard
   902  * [3891](https://github.com/grafana/loki/pull/3891) **sandeepsukhani**: add index-gateway to reads and reads-resources dashboards
   903  * [3877](https://github.com/grafana/loki/pull/3877) **sandeepsukhani**: Fix jsonnet for index-gateway
   904  * [3854](https://github.com/grafana/loki/pull/3854) **cyriltovena**: Fixes Loki reads dashboard.
   905  * [3848](https://github.com/grafana/loki/pull/3848) **kavirajk**: Add explicit `main` to pull loki and promtail to install it via Tanka
   906  * [3794](https://github.com/grafana/loki/pull/3794) **sandeepsukhani**: add a dashboard for log deletion requests in loki
   907  * [3697](https://github.com/grafana/loki/pull/3697) **owen-d**: better operational dashboard annotations via diff logger
   908  * [3658](https://github.com/grafana/loki/pull/3658) **cyriltovena**: Add a dashboard for retention to the loki-mixin.
   909  * [3601](https://github.com/grafana/loki/pull/3601) **owen-d**: Dashboard/fix operational vars
   910  * [3584](https://github.com/grafana/loki/pull/3584) **sandeepsukhani**: add loki resource usage dashboard for read and write path
   911  
   912  #### Project
   913  * [3963](https://github.com/grafana/loki/pull/3963) **rfratto**: Remove Robert Fratto from list of team members
   914  * [3926](https://github.com/grafana/loki/pull/3926) **cyriltovena**: Add Danny Kopping to the Loki Team.
   915  * [3732](https://github.com/grafana/loki/pull/3732) **dannykopping**: Issue Templates: Improve wording and add warnings
   916  * [3722](https://github.com/grafana/loki/pull/3722) **oddlittlebird**: Update CODEOWNERS
   917  * [3951](https://github.com/grafana/loki/pull/3951) **owen-d**: update sizing calc
   918  * [3931](https://github.com/grafana/loki/pull/3931) **owen-d**: Hackathon/cluster
   919  * [3920](https://github.com/grafana/loki/pull/3920) **owen-d**: adds replication &  deduping into cost
   920  * [3630](https://github.com/grafana/loki/pull/3630) **slim-bean**: Re-license to AGPLv3
   921  
   922  #### Docker-driver
   923  * [3814](https://github.com/grafana/loki/pull/3814) **kavirajk**: Update the docker-driver doc about default labels
   924  * [3727](https://github.com/grafana/loki/pull/3727) **3Xpl0it3r**: docker-driver: remove duplicated code
   925  * [3709](https://github.com/grafana/loki/pull/3709) **cyriltovena**: Fixes docker driver that would panic when closed.
   926  
   927  ### Notes
   928  
   929  This release was created from revision 8012362674568379a3871ff8c4a2bfd1ddba7ad1 (Which was PR 3460)
   930  
   931  ### Dependencies
   932  
   933  * Go Version:     1.16.2
   934  * Cortex Version: 485474c9afb2614fb89af3f48803c37d016bbaed
   935  
   936  ## 2.2.1 (2021/04/05)
   937  
   938  2.2.1 fixes several important bugs, it is recommended everyone running 2.2.0 upgrade to 2.2.1
   939  
   940  2.2.1 also adds the `labelallow` pipeline stage in Promtail which lets an allowlist be created for what labels will be sent by Promtail to Loki.
   941  
   942  * [3468](https://github.com/grafana/loki/pull/3468) **adityacs**: Support labelallow stage in Promtail
   943  * [3502](https://github.com/grafana/loki/pull/3502) **cyriltovena**: Fixes a bug where unpack would mutate log line.
   944  * [3540](https://github.com/grafana/loki/pull/3540) **cyriltovena**: Support for single step metric query.
   945  * [3550](https://github.com/grafana/loki/pull/3550) **cyriltovena**: Fixes a bug in MatrixStepper when sharding queries.
   946  * [3566](https://github.com/grafana/loki/pull/3566) **cyriltovena**: Properly release the ticker in Loki client.
   947  * [3573](https://github.com/grafana/loki/pull/3573) **cyriltovena**: Fixes a race when using specific tenant and multi-client.
   948  
   949  ## 2.2.0 (2021/03/10)
   950  
   951  With over 200 PR's 2.2 includes significant features, performance improvements, and bug fixes!
   952  
   953  The most upvoted issue for Loki was closed in this release! [Issue 74](https://github.com/grafana/loki/issues/74) requesting support for handling multi-line logs in Promtail was implemented in [PR 3024](https://github.com/grafana/loki/pull/3024). Thanks @jeschkies!
   954  
   955  Other exciting news for Promtail, [PR 3246](https://github.com/grafana/loki/pull/3246) by @cyriltovena introduces support for reading Windows Events!
   956  
   957  Switching to Loki, @owen-d has added a write ahead log to Loki! [PR 2981](https://github.com/grafana/loki/pull/2981) was the first of many as we have spent the last several months using and abusing our write ahead logs to flush out any bugs!
   958  
   959  A significant number of the PR's in this release have gone to improving the features introduced in Loki 2.0. @cyriltovena overhauled the JSON parser in [PR 3163](https://github.com/grafana/loki/pull/3163) (and a few other PR's), to provide both a faster and smarter parsing to only extract JSON content which is used in the query output.  The newest Loki squad member @dannykopping fine tuned the JSON parser options in [PR 3280](https://github.com/grafana/loki/pull/3280) allowing you to specific individual JSON elements, including support now for accessing elements in an array.  Many, many other additional improvements have been made, as well as several fixes to the new LogQL features added some months ago, this upgrade should have everyone seeing improvements in their queries.
   960  
   961  @cyriltovena also set his PPROF skills loose on the Loki write path which resulted in about 8x less memory usage on our distributors and a much more stable memory usage when ingesters are flushing a lot of chunks at the same time.
   962  
   963  There are many other noteworthy additions and fixes, too many to list, but we should call out one more feature all you Google Cloud Platform users might be excited about: in [PR 3083](https://github.com/grafana/loki/pull/3083) @kavirajk added support to Promtail for listening on Google Pub/Sub topics, letting you setup log sinks for your GCP logs to be ingested by Promtail and sent to Loki!
   964  
   965  Thanks to everyone for another exciting Loki release!!
   966  
   967  Please read the [Upgrade Guide](https://github.com/grafana/loki/blob/master/docs/sources/upgrading/_index.md#220) before upgrading for a smooth experience.
   968  
   969  TL;DR Loki 2.2 changes the internal chunk format which limits what versions you can downgrade to, a bug in how many queries were allowed to be scheduled per tenant was fixed which might affect your `max_query_parallelism` and `max_outstanding_per_tenant` settings, and we fixed a mistake related `scrape_configs` which do not have a `pipeline_stages` defined. If you have any Promtail `scrape_configs` which do not specify `pipeline_stages` you should go read the upgrade notes!
   970  
   971  ### All Changes
   972  
   973  #### Loki
   974  
   975  * [3460](https://github.com/grafana/loki/pull/3460) **slim-bean**: Loki: Per Tenant Runtime Configs
   976  * [3459](https://github.com/grafana/loki/pull/3459) **cyriltovena**: Fixes split interval for metrics queries.
   977  * [3432](https://github.com/grafana/loki/pull/3432) **slim-bean**: Loki: change ReadStringAsSlice to ReadString so it doesn't parse quotes inside the packed _entry
   978  * [3429](https://github.com/grafana/loki/pull/3429) **cyriltovena**: Improve the parser hint tests.
   979  * [3426](https://github.com/grafana/loki/pull/3426) **cyriltovena**: Only unpack entry if the key `_entry` exist.
   980  * [3424](https://github.com/grafana/loki/pull/3424) **cyriltovena**: Add fgprof to Loki and Promtail.
   981  * [3423](https://github.com/grafana/loki/pull/3423) **cyriltovena**: Add limit and line_returned in the query log.
   982  * [3420](https://github.com/grafana/loki/pull/3420) **cyriltovena**: Introduce a unpack parser.
   983  * [3417](https://github.com/grafana/loki/pull/3417) **cyriltovena**: Fixes a race in the scheduling limits.
   984  * [3416](https://github.com/grafana/loki/pull/3416) **ukolovda**: Distributor: append several tests for HTTP parser.
   985  * [3411](https://github.com/grafana/loki/pull/3411) **slim-bean**: Loki: fix alignment of atomic 64 bit to work with 32 bit OS
   986  * [3409](https://github.com/grafana/loki/pull/3409) **gotjosh**: Instrumentation: Add histogram for request duration on gRPC client to Ingesters
   987  * [3408](https://github.com/grafana/loki/pull/3408) **jgehrcke**: distributor: fix snappy-compressed protobuf POST request handling (#3407)
   988  * [3388](https://github.com/grafana/loki/pull/3388) **owen-d**: prevents duplicate log lines from being replayed. closes #3378
   989  * [3383](https://github.com/grafana/loki/pull/3383) **cyriltovena**: Fixes head chunk iterator direction.
   990  * [3380](https://github.com/grafana/loki/pull/3380) **slim-bean**: Loki: Fix parser hint for extracted labels which collide with stream labels
   991  * [3372](https://github.com/grafana/loki/pull/3372) **cyriltovena**: Fixes a panic with whitespace key.
   992  * [3350](https://github.com/grafana/loki/pull/3350) **cyriltovena**: Fixes ingester stats.
   993  * [3348](https://github.com/grafana/loki/pull/3348) **cyriltovena**: Fixes 500 in the querier when returning multiple errors.
   994  * [3347](https://github.com/grafana/loki/pull/3347) **cyriltovena**: Fixes a tight loop in the Engine with LogQL parser.
   995  * [3344](https://github.com/grafana/loki/pull/3344) **cyriltovena**: Fixes some 500 returned by querier when storage cancellation happens.
   996  * [3342](https://github.com/grafana/loki/pull/3342) **cyriltovena**: Bound parallelism frontend
   997  * [3340](https://github.com/grafana/loki/pull/3340) **owen-d**: Adds some flushing instrumentation/logs
   998  * [3339](https://github.com/grafana/loki/pull/3339) **owen-d**: adds Start() method to WAL interface to delay checkpointing until aft…
   999  * [3338](https://github.com/grafana/loki/pull/3338) **sandeepsukhani**: dedupe index on all the queries for a table instead of query batches
  1000  * [3326](https://github.com/grafana/loki/pull/3326) **owen-d**: removes wal recover flag
  1001  * [3307](https://github.com/grafana/loki/pull/3307) **slim-bean**: Loki: fix validation error and metrics
  1002  * [3306](https://github.com/grafana/loki/pull/3306) **cyriltovena**: Add finalizer to zstd.
  1003  * [3300](https://github.com/grafana/loki/pull/3300) **sandeepsukhani**: increase db retain period in ingesters to cover index cache validity period as well
  1004  * [3299](https://github.com/grafana/loki/pull/3299) **owen-d**: Logql/absent label optimization
  1005  * [3295](https://github.com/grafana/loki/pull/3295) **jtlisi**: chore: update cortex to latest and fix refs
  1006  * [3291](https://github.com/grafana/loki/pull/3291) **ukolovda**: Distributor: Loki API can receive gzipped JSON
  1007  * [3280](https://github.com/grafana/loki/pull/3280) **dannykopping**: LogQL: Simple JSON expressions
  1008  * [3279](https://github.com/grafana/loki/pull/3279) **cyriltovena**: Fixes logfmt parser hints.
  1009  * [3278](https://github.com/grafana/loki/pull/3278) **owen-d**: Testware/ rate-unwrap-multi
  1010  * [3274](https://github.com/grafana/loki/pull/3274) **liguozhong**: [ingester_query] change var "clients" to "reps"
  1011  * [3267](https://github.com/grafana/loki/pull/3267) **jeschkies**: Update vendored Cortex to 0976147451ee
  1012  * [3263](https://github.com/grafana/loki/pull/3263) **cyriltovena**: Fix a bug with  metric queries and label_format.
  1013  * [3261](https://github.com/grafana/loki/pull/3261) **sandeepsukhani**: fix broken json logs push path
  1014  * [3256](https://github.com/grafana/loki/pull/3256) **jtlisi**: update vendored cortex and add new replace overrides
  1015  * [3251](https://github.com/grafana/loki/pull/3251) **cyriltovena**: Ensure we have parentheses for bin ops.
  1016  * [3249](https://github.com/grafana/loki/pull/3249) **cyriltovena**: Fixes a bug where slice of Entries where not zeroed
  1017  * [3241](https://github.com/grafana/loki/pull/3241) **cyriltovena**: Allocate entries array with correct size  while decoding WAL entries.
  1018  * [3237](https://github.com/grafana/loki/pull/3237) **cyriltovena**: Fixes unmarshalling of tailing responses.
  1019  * [3236](https://github.com/grafana/loki/pull/3236) **slim-bean**: Loki: Log a crude lag metric for how far behind a client is.
  1020  * [3234](https://github.com/grafana/loki/pull/3234) **cyriltovena**: Fixes previous commit not using the new sized body.
  1021  * [3233](https://github.com/grafana/loki/pull/3233) **cyriltovena**: Re-introduce https://github.com/grafana/loki/pull/3178.
  1022  * [3228](https://github.com/grafana/loki/pull/3228) **MichelHollands**: Add config endpoint
  1023  * [3218](https://github.com/grafana/loki/pull/3218) **owen-d**: WAL backpressure
  1024  * [3217](https://github.com/grafana/loki/pull/3217) **cyriltovena**: Rename checkpoint proto package to avoid conflict with cortex.
  1025  * [3215](https://github.com/grafana/loki/pull/3215) **cyriltovena**: Cortex update pre 1.7
  1026  * [3211](https://github.com/grafana/loki/pull/3211) **cyriltovena**: Fixes tail api marshalling for v1.
  1027  * [3210](https://github.com/grafana/loki/pull/3210) **cyriltovena**: Reverts flush buffer pooling.
  1028  * [3201](https://github.com/grafana/loki/pull/3201) **sandeepsukhani**: limit query range in async store for ingesters when query-ingesters-within flag is set
  1029  * [3200](https://github.com/grafana/loki/pull/3200) **cyriltovena**: Improve ingester flush memory usage.
  1030  * [3195](https://github.com/grafana/loki/pull/3195) **owen-d**: Ignore flushed chunks during checkpointing
  1031  * [3194](https://github.com/grafana/loki/pull/3194) **cyriltovena**: Fixes unwrap expressions from  last optimization.
  1032  * [3193](https://github.com/grafana/loki/pull/3193) **cyriltovena**: Improve checkpoint series iterator.
  1033  * [3188](https://github.com/grafana/loki/pull/3188) **cyriltovena**: Improves checkpointerWriter memory usage
  1034  * [3180](https://github.com/grafana/loki/pull/3180) **owen-d**: moves boltdb flags to config file
  1035  * [3178](https://github.com/grafana/loki/pull/3178) **cyriltovena**: Logs PushRequest data.
  1036  * [3163](https://github.com/grafana/loki/pull/3163) **cyriltovena**: Uses custom json-iter decoder for log entries.
  1037  * [3159](https://github.com/grafana/loki/pull/3159) **MichelHollands**: Make httpAuthMiddleware field public
  1038  * [3153](https://github.com/grafana/loki/pull/3153) **cyriltovena**: Improve wal entries encoding.
  1039  * [3152](https://github.com/grafana/loki/pull/3152) **AllenzhLi**: update github.com/gorilla/websocket to fixes a potential denial-of-service (DoS) vector
  1040  * [3146](https://github.com/grafana/loki/pull/3146) **owen-d**: More semantically correct flush shutdown
  1041  * [3143](https://github.com/grafana/loki/pull/3143) **cyriltovena**: Fixes absent_over_time to work with all log selector.
  1042  * [3141](https://github.com/grafana/loki/pull/3141) **owen-d**: Swaps mutex for atomic in ingester's OnceSwitch
  1043  * [3137](https://github.com/grafana/loki/pull/3137) **owen-d**: label_format no longer shardable and introduces the Shardable() metho…
  1044  * [3136](https://github.com/grafana/loki/pull/3136) **owen-d**: Don't fail writes due to full WAL disk
  1045  * [3134](https://github.com/grafana/loki/pull/3134) **cyriltovena**: Improve distributors validation and apply in-place filtering.
  1046  * [3132](https://github.com/grafana/loki/pull/3132) **owen-d**: Integrates label replace into sharding code
  1047  * [3131](https://github.com/grafana/loki/pull/3131) **MichelHollands**: Update cortex to 1 6
  1048  * [3126](https://github.com/grafana/loki/pull/3126) **dannykopping**: Implementing line comments
  1049  * [3122](https://github.com/grafana/loki/pull/3122) **owen-d**: Self documenting pipeline process interface
  1050  * [3117](https://github.com/grafana/loki/pull/3117) **owen-d**: Wal/recover corruption
  1051  * [3114](https://github.com/grafana/loki/pull/3114) **owen-d**: Disables the stream limiter until wal has recovered
  1052  * [3092](https://github.com/grafana/loki/pull/3092) **liguozhong**: lru cache logql.ParseLabels
  1053  * [3090](https://github.com/grafana/loki/pull/3090) **cyriltovena**: Improve tailer matching by using the index.
  1054  * [3087](https://github.com/grafana/loki/pull/3087) **MichelHollands**: feature: make server publicly available
  1055  * [3080](https://github.com/grafana/loki/pull/3080) **cyriltovena**: Improve JSON parser and add labels parser hints.
  1056  * [3077](https://github.com/grafana/loki/pull/3077) **MichelHollands**: Make the moduleManager field public
  1057  * [3065](https://github.com/grafana/loki/pull/3065) **cyriltovena**: Optimizes SampleExpr to remove unnecessary line_format.
  1058  * [3064](https://github.com/grafana/loki/pull/3064) **cyriltovena**: Add zstd and flate compressions algorithms.
  1059  * [3053](https://github.com/grafana/loki/pull/3053) **cyriltovena**: Add absent_over_time
  1060  * [3048](https://github.com/grafana/loki/pull/3048) **cyriltovena**: Support rate for unwrapped expressions.
  1061  * [3047](https://github.com/grafana/loki/pull/3047) **cyriltovena**: Add function label_replace.
  1062  * [3030](https://github.com/grafana/loki/pull/3030) **cyriltovena**: Allows by/without to be empty and available for max/min_over_time
  1063  * [3025](https://github.com/grafana/loki/pull/3025) **cyriltovena**: Fixes a swallowed context err in the batch storage.
  1064  * [3013](https://github.com/grafana/loki/pull/3013) **owen-d**: headblock checkpointing up to v3
  1065  * [3008](https://github.com/grafana/loki/pull/3008) **cyriltovena**: Fixes the ruler storage with  the boltdb store.
  1066  * [3000](https://github.com/grafana/loki/pull/3000) **owen-d**: Introduces per stream chunks mutex
  1067  * [2981](https://github.com/grafana/loki/pull/2981) **owen-d**: Adds WAL support (experimental)
  1068  * [2960](https://github.com/grafana/loki/pull/2960) **sandeepsukhani**: fix table deletion in table client for boltdb-shipper
  1069  
  1070  #### Promtail
  1071  
  1072  * [3422](https://github.com/grafana/loki/pull/3422) **kavirajk**: Modify script to accept inclusion and exclustion filters as variables
  1073  * [3404](https://github.com/grafana/loki/pull/3404) **dannykopping**: Remove default docker pipeline stage
  1074  * [3401](https://github.com/grafana/loki/pull/3401) **slim-bean**: Promtail: Add pack stage
  1075  * [3381](https://github.com/grafana/loki/pull/3381) **adityacs**: fix nested captured groups indexing in replace stage
  1076  * [3332](https://github.com/grafana/loki/pull/3332) **cyriltovena**: Embed timezone data in Promtail.
  1077  * [3304](https://github.com/grafana/loki/pull/3304) **kavirajk**: Use project-id from the variables. Remove hardcoding
  1078  * [3303](https://github.com/grafana/loki/pull/3303) **cyriltovena**: Increase the windows bookmark buffer.
  1079  * [3302](https://github.com/grafana/loki/pull/3302) **cyriltovena**: Fixes races in multiline stage and promtail.
  1080  * [3298](https://github.com/grafana/loki/pull/3298) **gregorybrzeski**: Promtail: fix typo in config variable name - BookmarkPath
  1081  * [3285](https://github.com/grafana/loki/pull/3285) **kavirajk**: Make incoming labels from gcp into Loki internal labels.
  1082  * [3284](https://github.com/grafana/loki/pull/3284) **kavirajk**: Avoid putting all the GCP labels into loki labels
  1083  * [3246](https://github.com/grafana/loki/pull/3246) **cyriltovena**: Windows events
  1084  * [3224](https://github.com/grafana/loki/pull/3224) **veltmanj**: Fix(pkg/promtail)  CVE-2020-11022 JQuery vulnerability
  1085  * [3207](https://github.com/grafana/loki/pull/3207) **cyriltovena**: Fixes panic when using multiple clients
  1086  * [3191](https://github.com/grafana/loki/pull/3191) **rfratto**: promtail: pass registerer to gcplog
  1087  * [3175](https://github.com/grafana/loki/pull/3175) **rfratto**: Promtail: pass a prometheus registerer to promtail components
  1088  * [3083](https://github.com/grafana/loki/pull/3083) **kavirajk**: Gcplog targetmanager
  1089  * [3024](https://github.com/grafana/loki/pull/3024) **jeschkies**: Collapse multiline logs based on a start line.
  1090  * [3015](https://github.com/grafana/loki/pull/3015) **cyriltovena**: Add more information about why a tailer would stop.
  1091  * [2996](https://github.com/grafana/loki/pull/2996) **cyriltovena**: Asynchronous Promtail stages
  1092  * [2898](https://github.com/grafana/loki/pull/2898) **kavirajk**: fix(docker-driver): Propagate promtail's `client.Stop` properly
  1093  
  1094  #### Logcli
  1095  
  1096  * [3325](https://github.com/grafana/loki/pull/3325) **cyriltovena**: Fixes step encoding in logcli.
  1097  * [3271](https://github.com/grafana/loki/pull/3271) **chancez**: Refactor logcli Client interface to use time objects for LiveTailQueryConn
  1098  * [3270](https://github.com/grafana/loki/pull/3270) **chancez**: logcli: Fix handling of logcli query using --since/--from and --tail
  1099  * [3229](https://github.com/grafana/loki/pull/3229) **dethi**: logcli: support --include-label when not using --tail
  1100  
  1101  
  1102  #### Jsonnet
  1103  
  1104  * [3447](https://github.com/grafana/loki/pull/3447) **owen-d**: Use better memory metric on operational dashboard
  1105  * [3439](https://github.com/grafana/loki/pull/3439) **owen-d**: simplifies jsonnet sharding
  1106  * [3357](https://github.com/grafana/loki/pull/3357) **owen-d**: Libsonnet/better sharding parallelism defaults
  1107  * [3356](https://github.com/grafana/loki/pull/3356) **owen-d**: removes sharding queue math after global concurrency PR
  1108  * [3329](https://github.com/grafana/loki/pull/3329) **sandeepsukhani**: fix config for statefulset rulers when using boltdb-shipper
  1109  * [3297](https://github.com/grafana/loki/pull/3297) **owen-d**: adds stateful ruler clause for boltdb shipper jsonnet
  1110  * [3254](https://github.com/grafana/loki/pull/3254) **hairyhenderson**: ksonnet: Remove invalid hostname from default promtail configuration
  1111  * [3181](https://github.com/grafana/loki/pull/3181) **owen-d**: remaining sts use parallel mgmt policy
  1112  * [3179](https://github.com/grafana/loki/pull/3179) **owen-d**: Ruler statefulsets
  1113  * [3156](https://github.com/grafana/loki/pull/3156) **slim-bean**: Jsonnet: Changes ingester PVC from 5Gi to 10Gi
  1114  * [3139](https://github.com/grafana/loki/pull/3139) **owen-d**: Less confusing jsonnet error message when using boltdb shipper defaults.
  1115  * [3079](https://github.com/grafana/loki/pull/3079) **rajatvig**: Fix ingester PVC data declaration to use configured value
  1116  * [3074](https://github.com/grafana/loki/pull/3074) **c0ffeec0der**: Ksonnet: Assign appropriate pvc size and class to compactor and ingester
  1117  * [3062](https://github.com/grafana/loki/pull/3062) **cyriltovena**: Remove regexes in the operational dashboard.
  1118  * [3014](https://github.com/grafana/loki/pull/3014) **owen-d**: loki wal libsonnet
  1119  * [3010](https://github.com/grafana/loki/pull/3010) **cyriltovena**: Fixes promtail mixin dashboard.
  1120  
  1121  #### fluentd
  1122  
  1123  * [3358](https://github.com/grafana/loki/pull/3358) **fpob**: Fix fluentd plugin when kubernetes labels were missing
  1124  
  1125  #### fluent bit
  1126  
  1127  * [3240](https://github.com/grafana/loki/pull/3240) **sbaier1**: fix fluent-bit output plugin generating invalid JSON
  1128  
  1129  
  1130  #### Docker Logging Driver
  1131  
  1132  * [3331](https://github.com/grafana/loki/pull/3331) **cyriltovena**: Add pprof endpoint to docker-driver.
  1133  * [3225](https://github.com/grafana/loki/pull/3225) **Le0tk0k**: (fix: cmd/docker-driver): Insert a space in the error message
  1134  
  1135  #### Docs
  1136  * [5934](https://github.com/grafana/loki/pull/5934) **johgsc**: Docs: revise modes of operation section
  1137  * [3437](https://github.com/grafana/loki/pull/3437) **caleb15**: docs: add note about regex
  1138  * [3421](https://github.com/grafana/loki/pull/3421) **kavirajk**: doc(gcplog): Advanced log export filter example
  1139  * [3419](https://github.com/grafana/loki/pull/3419) **suitupalex**: docs: promtail: Fix typo w/ windows_events hyperlink.
  1140  * [3418](https://github.com/grafana/loki/pull/3418) **dannykopping**: Adding upgrade documentation for promtail pipeline_stages change
  1141  * [3385](https://github.com/grafana/loki/pull/3385) **paaacman**: Documentation: enable environment variable in configuration
  1142  * [3373](https://github.com/grafana/loki/pull/3373) **StMarian**: Documentation: Fix configuration description
  1143  * [3371](https://github.com/grafana/loki/pull/3371) **owen-d**: Distributor overview docs
  1144  * [3370](https://github.com/grafana/loki/pull/3370) **tkowalcz**: documentation: Add Tjahzi to the list of unofficial clients
  1145  * [3352](https://github.com/grafana/loki/pull/3352) **kavirajk**: Remove extra space between broken link
  1146  * [3351](https://github.com/grafana/loki/pull/3351) **kavirajk**: Add some operation details to gcplog doc
  1147  * [3316](https://github.com/grafana/loki/pull/3316) **kavirajk**: docs(fix): Make best practices docs look better
  1148  * [3292](https://github.com/grafana/loki/pull/3292) **wapmorgan**: Patch 2 - fix link to another documentation files
  1149  * [3265](https://github.com/grafana/loki/pull/3265) **sandeepsukhani**: Boltdb shipper doc fixes
  1150  * [3239](https://github.com/grafana/loki/pull/3239) **owen-d**: updates tanka installation docs
  1151  * [3235](https://github.com/grafana/loki/pull/3235) **scoof**: docs: point to latest release for docker installation
  1152  * [3220](https://github.com/grafana/loki/pull/3220) **liguozhong**: [doc] fix err. "loki_frontend" is invalid
  1153  * [3212](https://github.com/grafana/loki/pull/3212) **nvtkaszpir**: Fix: Update docs for logcli
  1154  * [3190](https://github.com/grafana/loki/pull/3190) **kavirajk**: doc(gcplog): Fix titles for Cloud provisioning for GCP logs
  1155  * [3165](https://github.com/grafana/loki/pull/3165) **liguozhong**: [doc] fix:querier do not handle "/flush" api
  1156  * [3164](https://github.com/grafana/loki/pull/3164) **owen-d**: updates alerting docs post 2.0
  1157  * [3162](https://github.com/grafana/loki/pull/3162) **huikang**: Doc: Add missing wal in configuration
  1158  * [3148](https://github.com/grafana/loki/pull/3148) **huikang**: Doc: add missing type supported by table manager
  1159  * [3147](https://github.com/grafana/loki/pull/3147) **marionxue**: Markdown Code highlighting
  1160  * [3138](https://github.com/grafana/loki/pull/3138) **jeschkies**: Give another example for multiline.
  1161  * [3128](https://github.com/grafana/loki/pull/3128) **cyriltovena**: Fixes LogQL documentation links.
  1162  * [3124](https://github.com/grafana/loki/pull/3124) **wujie1993**: fix time duration unit
  1163  * [3123](https://github.com/grafana/loki/pull/3123) **scoren-gl**: Update getting-in-touch.md
  1164  * [3115](https://github.com/grafana/loki/pull/3115) **valmack**: Docs: Include instruction to enable variable expansion
  1165  * [3109](https://github.com/grafana/loki/pull/3109) **nileshcs**: Documentation fix for downstream_url
  1166  * [3102](https://github.com/grafana/loki/pull/3102) **slim-bean**: Docs: Changelog: fix indentation and add helm repo url
  1167  * [3094](https://github.com/grafana/loki/pull/3094) **benjaminhuo**: Fix storage guide links
  1168  * [3088](https://github.com/grafana/loki/pull/3088) **cyriltovena**: Small fixes for the documentation.
  1169  * [3084](https://github.com/grafana/loki/pull/3084) **ilpianista**: Update reference to old helm chart repo
  1170  * [3078](https://github.com/grafana/loki/pull/3078) **kavirajk**: mention the use of `config.expand-env` flag in the doc.
  1171  * [3049](https://github.com/grafana/loki/pull/3049) **vitalets**: [Docs] Clarify docker-driver configuration options
  1172  * [3039](https://github.com/grafana/loki/pull/3039) **jdbaldry**: doc: logql formatting fixes
  1173  * [3035](https://github.com/grafana/loki/pull/3035) **unguiculus**: Fix multiline docs
  1174  * [3033](https://github.com/grafana/loki/pull/3033) **RichiH**: docs: Create ADOPTERS.md
  1175  * [3032](https://github.com/grafana/loki/pull/3032) **oddlittlebird**: Docs: Update _index.md
  1176  * [3029](https://github.com/grafana/loki/pull/3029) **jeschkies**: Correct `multiline` documentation.
  1177  * [3027](https://github.com/grafana/loki/pull/3027) **nop33**: Fix docs header inconsistency
  1178  * [3026](https://github.com/grafana/loki/pull/3026) **owen-d**: wal docs
  1179  * [3017](https://github.com/grafana/loki/pull/3017) **jdbaldry**: doc: Cleanup formatting
  1180  * [3009](https://github.com/grafana/loki/pull/3009) **jdbaldry**: doc: Fix query-frontend typo
  1181  * [3002](https://github.com/grafana/loki/pull/3002) **keyolk**: Fix typo
  1182  * [2991](https://github.com/grafana/loki/pull/2991) **jontg**: Documentation:  Add a missing field to the extended config s3 example
  1183  * [2956](https://github.com/grafana/loki/pull/2956) **owen-d**: Updates chunkenc doc for V3
  1184  
  1185  #### Build
  1186  
  1187  * [3412](https://github.com/grafana/loki/pull/3412) **rfratto**: Remove unneeded prune-ci-tags drone job
  1188  * [3390](https://github.com/grafana/loki/pull/3390) **wardbekker**: Don't auto-include pod labels as loki labels as a sane default
  1189  * [3321](https://github.com/grafana/loki/pull/3321) **owen-d**: defaults promtail to 2.1.0 in install script
  1190  * [3277](https://github.com/grafana/loki/pull/3277) **kavirajk**: Add step to version Loki docs during public release process.
  1191  * [3243](https://github.com/grafana/loki/pull/3243) **chancez**: dist: Build promtail for windows/386 to support 32 bit windows hosts
  1192  * [3206](https://github.com/grafana/loki/pull/3206) **kavirajk**: Terraform script to automate GCP provisioning for gcplog
  1193  * [3149](https://github.com/grafana/loki/pull/3149) **jlosito**: Allow dependabot to keep github actions up-to-date
  1194  * [3072](https://github.com/grafana/loki/pull/3072) **slim-bean**: Helm: Disable CI
  1195  * [3031](https://github.com/grafana/loki/pull/3031) **AdamKorcz**: Testing: Introduced continuous fuzzing
  1196  * [3006](https://github.com/grafana/loki/pull/3006) **huikang**: Fix the docker image version in compose deployment
  1197  
  1198  
  1199  #### Tooling
  1200  
  1201  * [3377](https://github.com/grafana/loki/pull/3377) **slim-bean**: Tooling: Update chunks-inspect to understand the new chunk format as well as new compression algorithms
  1202  * [3151](https://github.com/grafana/loki/pull/3151) **slim-bean**: Loki migrate-tool
  1203  
  1204  
  1205  ### Notes
  1206  
  1207  This release was created from revision 8012362674568379a3871ff8c4a2bfd1ddba7ad1 (Which was PR 3460)
  1208  
  1209  ### Dependencies
  1210  
  1211  * Go Version:     1.15.3
  1212  * Cortex Version: 7dac81171c665be071bd167becd1f55528a9db32
  1213  
  1214  
  1215  ## 2.1.0 (2020/12/23)
  1216  
  1217  Happy Holidays from the Loki team! Please enjoy a new Loki release to welcome in the New Year!
  1218  
  1219  2.1.0 Contains a number of fixes, performance improvements and enhancements to the 2.0.0 release!
  1220  
  1221  ### Notable changes
  1222  
  1223  #### Helm users read this!
  1224  
  1225  The Helm charts have moved!
  1226  
  1227  * [2720](https://github.com/grafana/loki/pull/2720) **torstenwalter**: Deprecate Charts as they have been moved
  1228  
  1229  This was done to consolidate Grafana's helm charts for all Grafana projects in one place: https://github.com/grafana/helm-charts/
  1230  
  1231  **From now moving forward, please use the new Helm repo url: https://grafana.github.io/helm-charts**
  1232  
  1233  The charts in the Loki repo will soon be removed so please update your Helm repo to the new URL and submit your PR's over there as well
  1234  
  1235  Special thanks to @torstenwalter, @unguiculus, and @scottrigby for their initiative and amazing work to make this happen!
  1236  
  1237  Also go check out the microservices helm chart contributed by @unguiculus in the new repo!
  1238  
  1239  #### Fluent bit plugin users read this!
  1240  
  1241  Fluent bit officially supports Loki as an output plugin now! WoooHOOO!
  1242  
  1243  However this created a naming conflict with our existing output plugin (the new native output uses the name `loki`) so we have renamed our plugin.
  1244  
  1245  * [2974](https://github.com/grafana/loki/pull/2974) **hedss**: fluent-bit: Rename Fluent Bit plugin output name.
  1246  
  1247  In time our plan is to deprecate and eliminate our output plugin in favor of the native Loki support. However until then you can continue using the plugin with the following change:
  1248  
  1249  Old:
  1250  
  1251  ```
  1252  [Output]
  1253      Name loki
  1254  ```
  1255  
  1256  New:
  1257  
  1258  ```
  1259  [Output]
  1260      Name grafana-loki
  1261  ```
  1262  
  1263  #### Fixes
  1264  
  1265  A lot of work went into 2.0 with a lot of new code and rewrites to existing, this introduced and uncovered some bugs which are fixed in 2.1:
  1266  
  1267  * [2807](https://github.com/grafana/loki/pull/2807) **cyriltovena**: Fix error swallowed in the frontend.
  1268  * [2805](https://github.com/grafana/loki/pull/2805) **cyriltovena**: Improve pipeline stages ast errors.
  1269  * [2824](https://github.com/grafana/loki/pull/2824) **owen-d**: Fix/validate compactor config
  1270  * [2830](https://github.com/grafana/loki/pull/2830) **sandeepsukhani**: fix panic in ingester when not running with boltdb shipper while queriers does
  1271  * [2850](https://github.com/grafana/loki/pull/2850) **owen-d**: Only applies entry limits to non-SampleExprs.
  1272  * [2855](https://github.com/grafana/loki/pull/2855) **sandeepsukhani**: fix query intervals when running boltdb-shipper in single binary
  1273  * [2895](https://github.com/grafana/loki/pull/2895) **shokada**: Fix error 'Unexpected: ("$", "$") while parsing field definition'
  1274  * [2902](https://github.com/grafana/loki/pull/2902) **cyriltovena**: Fixes metric query issue with no grouping.
  1275  * [2901](https://github.com/grafana/loki/pull/2901) **cyriltovena**: Fixes a panic with the logql.NoopPipeline.
  1276  * [2913](https://github.com/grafana/loki/pull/2913) **cyriltovena**: Fixes logql.QueryType.
  1277  * [2917](https://github.com/grafana/loki/pull/2917) **cyriltovena**: Fixes race condition in tailer since logql v2.
  1278  * [2960](https://github.com/grafana/loki/pull/2960) **sandeepsukhani**: fix table deletion in table client for boltdb-shipper
  1279  
  1280  #### Enhancements
  1281  
  1282  A number of performance and resource improvements have been made as well!
  1283  
  1284  * [2911](https://github.com/grafana/loki/pull/2911) **sandeepsukhani**: Boltdb shipper query readiness
  1285  * [2875](https://github.com/grafana/loki/pull/2875) **cyriltovena**: Labels computation LogQLv2
  1286  * [2927](https://github.com/grafana/loki/pull/2927) **cyriltovena**: Improve logql parser allocations.
  1287  * [2926](https://github.com/grafana/loki/pull/2926) **cyriltovena**: Cache label strings in ingester to improve memory usage.
  1288  * [2931](https://github.com/grafana/loki/pull/2931) **cyriltovena**: Only append tailed entries if needed.
  1289  * [2973](https://github.com/grafana/loki/pull/2973) **cyriltovena**: Avoid parsing labels when tailer is sending from a stream.
  1290  * [2959](https://github.com/grafana/loki/pull/2959) **cyriltovena**: Improve tailer matcher function.
  1291  * [2876](https://github.com/grafana/loki/pull/2876) **jkellerer**: LogQL: Add unwrap bytes() conversion function
  1292  
  1293  
  1294  #### Notable mentions
  1295  
  1296  Thanks to @timbyr for adding an often requested feature, the ability to support environment variable expansion in config files!
  1297  
  1298  * [2837](https://github.com/grafana/loki/pull/2837) **timbyr**: Configuration: Support environment expansion in configuration
  1299  
  1300  Thanks to @huikang for adding a new docker-compose file for running Loki as microservices!
  1301  
  1302  * [2740](https://github.com/grafana/loki/pull/2740) **huikang**: Deploy: add docker-compose cluster deployment file
  1303  
  1304  ### All Changes
  1305  
  1306  #### Loki
  1307  * [2988](https://github.com/grafana/loki/pull/2988) **slim-bean**: Loki: handle faults when opening boltdb files
  1308  * [2984](https://github.com/grafana/loki/pull/2984) **owen-d**: adds the ability to read chunkFormatV3 while writing v2
  1309  * [2983](https://github.com/grafana/loki/pull/2983) **slim-bean**: Loki: recover from panic opening boltdb files
  1310  * [2975](https://github.com/grafana/loki/pull/2975) **cyriltovena**: Fixes vector grouping injection.
  1311  * [2972](https://github.com/grafana/loki/pull/2972) **cyriltovena**: Add ProcessString to Pipeline.
  1312  * [2962](https://github.com/grafana/loki/pull/2962) **cyriltovena**: Implement io.WriteTo by chunks.
  1313  * [2951](https://github.com/grafana/loki/pull/2951) **owen-d**: bumps rules-action ref to logqlv2+ version
  1314  * [2946](https://github.com/grafana/loki/pull/2946) **cyriltovena**: Fixes the Stringer of the byte label operator.
  1315  * [2945](https://github.com/grafana/loki/pull/2945) **cyriltovena**: Fixes iota unexpected behaviour with bytes for chunk encoding.
  1316  * [2941](https://github.com/grafana/loki/pull/2941) **jeschkies**: Test label filter for bytes.
  1317  * [2934](https://github.com/grafana/loki/pull/2934) **owen-d**: chunk schema v3
  1318  * [2930](https://github.com/grafana/loki/pull/2930) **cyriltovena**: Fixes all in one grpc registrations.
  1319  * [2929](https://github.com/grafana/loki/pull/2929) **cyriltovena**: Cleanup labels parsing.
  1320  * [2922](https://github.com/grafana/loki/pull/2922) **codewithcheese**: Distributor registers logproto.Pusher service to receive logs via GRPC
  1321  * [2918](https://github.com/grafana/loki/pull/2918) **owen-d**: Includes delete routes for ruler namespaces
  1322  * [2903](https://github.com/grafana/loki/pull/2903) **cyriltovena**: Limit series for metric queries.
  1323  * [2892](https://github.com/grafana/loki/pull/2892) **cyriltovena**: Improve the chunksize test.
  1324  * [2891](https://github.com/grafana/loki/pull/2891) **sandeepsukhani**: fix flaky load tables test for boltdb-shipper uploads table-manager
  1325  * [2836](https://github.com/grafana/loki/pull/2836) **andir**: tests: fix quoting issues in test output when building with Go 1.15
  1326  * [2831](https://github.com/grafana/loki/pull/2831) **sandeepsukhani**: fix flaky tests in boltdb-shipper
  1327  * [2822](https://github.com/grafana/loki/pull/2822) **cyriltovena**: LogQL: Improve template format
  1328  * [2794](https://github.com/grafana/loki/pull/2794) **sandeepsukhani**: Revendor cortex to latest master
  1329  * [2764](https://github.com/grafana/loki/pull/2764) **owen-d**: WAL/marshalable chunks
  1330  * [2751](https://github.com/grafana/loki/pull/2751) **jeschkies**: Logging: Log throughput and total bytes human readable.
  1331  
  1332  #### Helm
  1333  * [2986](https://github.com/grafana/loki/pull/2986) **cyriltovena**: Move CI to helm3.
  1334  * [2967](https://github.com/grafana/loki/pull/2967) **czunker**: Remove `helm init`
  1335  * [2965](https://github.com/grafana/loki/pull/2965) **czunker**: [Helm Chart Loki] Add needed k8s objects for alerting config
  1336  * [2940](https://github.com/grafana/loki/pull/2940) **slim-bean**: Helm: Update logstash to new chart and newer version
  1337  * [2835](https://github.com/grafana/loki/pull/2835) **tracyde**: Iss2734
  1338  * [2789](https://github.com/grafana/loki/pull/2789) **bewiwi**: Allows service targetPort modificaion
  1339  * [2651](https://github.com/grafana/loki/pull/2651) **scottrigby**: helm chart: Fix broken logo
  1340  
  1341  #### Jsonnet
  1342  * [2976](https://github.com/grafana/loki/pull/2976) **beorn7**: Improve promtail alerts to retain the namespace label
  1343  * [2961](https://github.com/grafana/loki/pull/2961) **sandeepsukhani**: add missing ingester query routes in loki reads and operational dashboard
  1344  * [2899](https://github.com/grafana/loki/pull/2899) **halcyondude**: gateway: fix regression in tanka jsonnet
  1345  * [2873](https://github.com/grafana/loki/pull/2873) **Duologic**: fix(loki-mixin): refer to super.annotations
  1346  * [2852](https://github.com/grafana/loki/pull/2852) **chancez**: production/ksonnet: Add config_hash annotation to gateway deployment based on gateway configmap
  1347  * [2820](https://github.com/grafana/loki/pull/2820) **owen-d**: fixes promtail libsonnet tag. closes #2818
  1348  * [2718](https://github.com/grafana/loki/pull/2718) **halcyondude**: parameterize PVC storage class (ingester, querier, compactor)
  1349  
  1350  
  1351  #### Docs
  1352  * [2969](https://github.com/grafana/loki/pull/2969) **simonswine**: Add community forum to README.md
  1353  * [2968](https://github.com/grafana/loki/pull/2968) **yuichi10**: logcli: Fix logcli logql document URL
  1354  * [2942](https://github.com/grafana/loki/pull/2942) **hedss**: Docs: Corrects Fluent Bit documentation link to build the plugin.
  1355  * [2933](https://github.com/grafana/loki/pull/2933) **oddlittlebird**: Update CODEOWNERS
  1356  * [2909](https://github.com/grafana/loki/pull/2909) **fredr**: Docs: Add max_cache_freshness_per_query to limit_config
  1357  * [2890](https://github.com/grafana/loki/pull/2890) **dfang**: Fix typo
  1358  * [2888](https://github.com/grafana/loki/pull/2888) **oddlittlebird**: Update CODEOWNERS
  1359  * [2879](https://github.com/grafana/loki/pull/2879) **zhanghjster**: documentation: add tail_proxy_url option to query_frontend_config section
  1360  * [2869](https://github.com/grafana/loki/pull/2869) **nehaev**: documentation: Add loki4j to the list of unofficial clients
  1361  * [2853](https://github.com/grafana/loki/pull/2853) **RangerCD**: Fix typos in promtail
  1362  * [2848](https://github.com/grafana/loki/pull/2848) **dminca**: documentation: fix broken link in Best Practices section
  1363  * [2833](https://github.com/grafana/loki/pull/2833) **siavashs**: Docs: -querier.split-queries-by-day deprecation
  1364  * [2819](https://github.com/grafana/loki/pull/2819) **owen-d**: updates docs with delete permissions notice
  1365  * [2817](https://github.com/grafana/loki/pull/2817) **scoof**: Documentation: Add S3 IAM policy to be able to run Compactor
  1366  * [2811](https://github.com/grafana/loki/pull/2811) **slim-bean**: Docs: improve the helm upgrade section
  1367  * [2810](https://github.com/grafana/loki/pull/2810) **hedss**: CHANGELOG: Update update document links to point to the right place.
  1368  * [2704](https://github.com/grafana/loki/pull/2704) **owen-d**: WAL design doc
  1369  * [2636](https://github.com/grafana/loki/pull/2636) **LTek-online**: promtail documentation: changing the headers of the configuration docu to reflect configuration code
  1370  
  1371  #### Promtail
  1372  * [2957](https://github.com/grafana/loki/pull/2957) **slim-bean**: Promtail: Update debian image and use a newer libsystemd
  1373  * [2928](https://github.com/grafana/loki/pull/2928) **cyriltovena**: Skip journald bad message.
  1374  * [2914](https://github.com/grafana/loki/pull/2914) **chancez**: promtail: Add support for using syslog message timestamp
  1375  * [2910](https://github.com/grafana/loki/pull/2910) **rfratto**: Expose underlying promtail client
  1376  
  1377  
  1378  #### Logcli
  1379  * [2948](https://github.com/grafana/loki/pull/2948) **tomwilkie**: Add a few more instructions to logcli --help.
  1380  
  1381  #### Build
  1382  * [2877](https://github.com/grafana/loki/pull/2877) **cyriltovena**: Update to go 1.15
  1383  * [2814](https://github.com/grafana/loki/pull/2814) **torkelo**: Stats: Adding metrics collector GitHub action
  1384  
  1385  #### Fluentd
  1386  * [2825](https://github.com/grafana/loki/pull/2825) **cyriltovena**: Bump fluentd plugin
  1387  * [2434](https://github.com/grafana/loki/pull/2434) **andsens**: fluent-plugin: Improve escaping in key_value format
  1388  
  1389  
  1390  ### Notes
  1391  
  1392  This release was created from revision ae9c4b82ec4a5d21267da50d6a1a8170e0ef82ff (Which was PR 2960) and the following PR's were cherry-picked
  1393  * [2984](https://github.com/grafana/loki/pull/2984) **owen-d**: adds the ability to read chunkFormatV3 while writing v2
  1394  * [2974](https://github.com/grafana/loki/pull/2974) **hedss**: fluent-bit: Rename Fluent Bit plugin output name.
  1395  
  1396  ### Dependencies
  1397  
  1398  * Go Version:     1.15.3
  1399  * Cortex Version: 85942c5703cf22b64cecfd291e7e7c42d1b8c30c
  1400  
  1401  ## 2.0.1 (2020/12/10)
  1402  
  1403  2.0.1 is a special release, it only exists to add the v3 support to Loki's chunk format.
  1404  
  1405  **There is no reason to upgrade from 2.0.0 to 2.0.1**
  1406  
  1407  This chunk version is internal to Loki and not configurable, and in a future version v3 will become the default (Likely 2.2.0).
  1408  
  1409  We are creating this to enable users to roll back from a future release which was writing v3 chunks, back as far as 2.0.0 and still be able to read chunks.
  1410  
  1411  This is mostly a safety measure to help if someone upgrades from 2.0.0 and skips versions to a future version which is writing v3 chunks and they encounter an issue which they would like to roll back. They would be able to then roll back to 2.0.1 and still read v3 chunks.
  1412  
  1413  It should be noted this does not help anyone upgrading from a version older than 2.0.0, that is you should at least upgrade to 2.0.0 before going to a newer version if you are on a version older than 2.0.0.
  1414  
  1415  ## 2.0.0 (2020/10/26)
  1416  
  1417  2.0.0 is here!!
  1418  
  1419  We are extremely excited about the new features in 2.0.0, unlocking a whole new world of observability of our logs.
  1420  
  1421  Thanks again for the many incredible contributions and improvements from the wonderful Loki community, we are very excited for the future!
  1422  
  1423  ### Important Notes
  1424  
  1425  **Please Note** There are several changes in this release which require your attention!
  1426  
  1427  * Anyone using a docker image please go read the [upgrade guide](https://github.com/grafana/loki/blob/master/docs/sources/upgrading/_index.md#200)!! There is one important consideration around a potentially breaking schema change depending on your configuration.
  1428  * MAJOR changes have been made to the boltdb-shipper index, breaking changes are not expected but extra precautions are highly recommended, more details in the [upgrade guide](https://github.com/grafana/loki/blob/master/docs/sources/upgrading/_index.md#200).
  1429  * The long deprecated `entry_parser` config in Promtail has been removed, use [pipeline_stages](https://grafana.com/docs/loki/latest/clients/promtail/configuration/#pipeline_stages) instead.
  1430  
  1431  Check the [upgrade guide](https://github.com/grafana/loki/blob/master/docs/sources/upgrading/_index.md#200) for detailed information on all these changes.
  1432  
  1433  ### 2.0!!!!
  1434  
  1435  There are too many PR's to list individually for the major improvements which we thought justified a 2.0 but here is the high level:
  1436  
  1437  * Significant enhancements to the [LogQL query language](https://grafana.com/docs/loki/latest/logql/)!
  1438  * [Parse](https://grafana.com/docs/loki/latest/logql/#parser-expression) your logs to extract labels at query time.
  1439  * [Filter](https://grafana.com/docs/loki/latest/logql/#label-filter-expression) on query time extracted labels.
  1440  * [Format](https://grafana.com/docs/loki/latest/logql/#line-format-expression) your log lines any way you please!
  1441  * [Graph](https://grafana.com/docs/loki/latest/logql/#unwrapped-range-aggregations) the contents of your log lines as metrics, including support for many more of your favorite PromQL functions.
  1442  * Generate prometheus [alerts directly from your logs](https://grafana.com/docs/loki/latest/alerting/)!
  1443  * Create alerts using the same prometheus alert rule syntax and let Loki send alerts directly to your Prometheus Alertmanager!
  1444  * [boltdb-shipper](https://grafana.com/docs/loki/latest/operations/storage/boltdb-shipper/) is now production ready!
  1445  * This is it! Now Loki only needs a single object store (S3,GCS,Filesystem...) to store all the data, no more Cassandra, DynamoDB or Bigtable!
  1446  
  1447  We are extremely excited about these new features, expect some talks, webinars, and blogs where we explain all this new functionality in detail.
  1448  
  1449  ### Notable mention
  1450  
  1451  This is a small change but very helpful!
  1452  
  1453  * [2737](https://github.com/grafana/loki/pull/2737) **dlemel8**: cmd/loki: add "verify-config" flag
  1454  
  1455  Thank you @dlemel8 for this PR! Now you can start Loki with `-verify-config` to make sure your config is valid and Loki will exit with a status code 0 if it is!
  1456  
  1457  ### All Changes
  1458  
  1459  #### Loki
  1460  * [2804](https://github.com/grafana/loki/pull/2804) **slim-bean**: Loki: log any chunk fetch failure
  1461  * [2803](https://github.com/grafana/loki/pull/2803) **slim-bean**: Update local and docker default config files to use boltdb-shipper with a few other config changes
  1462  * [2796](https://github.com/grafana/loki/pull/2796) **cyriltovena**: Fixes a bug that would add __error__ label incorrectly.
  1463  * [2793](https://github.com/grafana/loki/pull/2793) **cyriltovena**: Improve the way we reverse iterator for backward queries.
  1464  * [2790](https://github.com/grafana/loki/pull/2790) **sandeepsukhani**: Boltdb shipper metrics changes
  1465  * [2788](https://github.com/grafana/loki/pull/2788) **sandeepsukhani**: add a metric in compactor to record timestamp of last successful run
  1466  * [2786](https://github.com/grafana/loki/pull/2786) **cyriltovena**: Logqlv2 pushes groups down to edge
  1467  * [2778](https://github.com/grafana/loki/pull/2778) **cyriltovena**: Logqv2 optimization
  1468  * [2774](https://github.com/grafana/loki/pull/2774) **cyriltovena**: Handle panic in the store goroutine.
  1469  * [2773](https://github.com/grafana/loki/pull/2773) **cyriltovena**: Fixes race conditions in the batch iterator.
  1470  * [2770](https://github.com/grafana/loki/pull/2770) **sandeepsukhani**: Boltdb shipper query performance improvements
  1471  * [2769](https://github.com/grafana/loki/pull/2769) **cyriltovena**: LogQL: Labels and Metrics Extraction
  1472  * [2768](https://github.com/grafana/loki/pull/2768) **cyriltovena**: Fixes all lint errors.
  1473  * [2761](https://github.com/grafana/loki/pull/2761) **owen-d**: Service discovery refactor
  1474  * [2755](https://github.com/grafana/loki/pull/2755) **owen-d**: Revendor Cortex
  1475  * [2752](https://github.com/grafana/loki/pull/2752) **kavirajk**: fix: Remove depricated `entry_parser` from scrapeconfig
  1476  * [2741](https://github.com/grafana/loki/pull/2741) **owen-d**: better tenant logging in ruler memstore
  1477  * [2737](https://github.com/grafana/loki/pull/2737) **dlemel8**: cmd/loki: add "verify-config" flag
  1478  * [2735](https://github.com/grafana/loki/pull/2735) **cyriltovena**: Fixes the frontend logs to include org_id.
  1479  * [2732](https://github.com/grafana/loki/pull/2732) **sandeepsukhani**: set timestamp in instant query done by canaries
  1480  * [2726](https://github.com/grafana/loki/pull/2726) **dvrkps**: hack: clean getStore
  1481  * [2711](https://github.com/grafana/loki/pull/2711) **owen-d**: removes r/w pools from block/chunk types
  1482  * [2709](https://github.com/grafana/loki/pull/2709) **cyriltovena**: Bypass sharding middleware when a query can't be sharded.
  1483  * [2671](https://github.com/grafana/loki/pull/2671) **alrs**: pkg/querier: fix dropped error
  1484  * [2665](https://github.com/grafana/loki/pull/2665) **cnbailian**: Loki: Querier APIs respond JSON Content-Type
  1485  * [2663](https://github.com/grafana/loki/pull/2663) **owen-d**: improves numeric literal stringer impl
  1486  * [2662](https://github.com/grafana/loki/pull/2662) **owen-d**: exposes rule group validation fn
  1487  * [2661](https://github.com/grafana/loki/pull/2661) **owen-d**: Enable local rules backend & disallow configdb.
  1488  * [2656](https://github.com/grafana/loki/pull/2656) **sandeepsukhani**: run multiple queries per table at once with boltdb-shipper
  1489  * [2655](https://github.com/grafana/loki/pull/2655) **sandeepsukhani**: fix store query bug when running loki in single binary mode with boltdb-shipper
  1490  * [2650](https://github.com/grafana/loki/pull/2650) **owen-d**: Adds prometheus ruler routes
  1491  * [2647](https://github.com/grafana/loki/pull/2647) **arl**: pkg/chunkenc: fix test using string(int) conversion
  1492  * [2645](https://github.com/grafana/loki/pull/2645) **arl**: Tests: fix issue 2356: distributor_test.go fails when the system has no interface name in [eth0, en0, lo0]
  1493  * [2642](https://github.com/grafana/loki/pull/2642) **sandeepsukhani**: fix an issue with building loki
  1494  * [2640](https://github.com/grafana/loki/pull/2640) **sandeepsukhani**: improvements for boltdb-shipper compactor
  1495  * [2637](https://github.com/grafana/loki/pull/2637) **owen-d**: Ruler docs + single binary inclusion
  1496  * [2627](https://github.com/grafana/loki/pull/2627) **sandeepsukhani**: revendor cortex to latest master
  1497  * [2620](https://github.com/grafana/loki/pull/2620) **alrs**: pkg/storage/stores/shipper/uploads: fix test error
  1498  * [2614](https://github.com/grafana/loki/pull/2614) **cyriltovena**: Improve lz4 compression
  1499  * [2613](https://github.com/grafana/loki/pull/2613) **sandeepsukhani**: fix a panic when trying to stop boltdb-shipper multiple times using sync.once
  1500  * [2610](https://github.com/grafana/loki/pull/2610) **slim-bean**: Loki: Fix query-frontend ready handler
  1501  * [2601](https://github.com/grafana/loki/pull/2601) **sandeepsukhani**: rpc for querying ingesters to get chunk ids from its store
  1502  * [2589](https://github.com/grafana/loki/pull/2589) **owen-d**: Ruler/loki rule validator
  1503  * [2582](https://github.com/grafana/loki/pull/2582) **yeya24**: Add _total suffix to ruler counter metrics
  1504  * [2580](https://github.com/grafana/loki/pull/2580) **owen-d**: strict rule unmarshaling
  1505  * [2578](https://github.com/grafana/loki/pull/2578) **owen-d**: exports grouploader
  1506  * [2576](https://github.com/grafana/loki/pull/2576) **owen-d**: Better rule loading
  1507  * [2574](https://github.com/grafana/loki/pull/2574) **sandeepsukhani**: fix closing of compressed file from boltdb-shipper compactor
  1508  * [2572](https://github.com/grafana/loki/pull/2572) **adityacs**: Validate max_query_length in Labels API
  1509  * [2564](https://github.com/grafana/loki/pull/2564) **owen-d**: Error on no schema configs
  1510  * [2559](https://github.com/grafana/loki/pull/2559) **sandeepsukhani**: fix dir setup based on which mode it is running
  1511  * [2558](https://github.com/grafana/loki/pull/2558) **sandeepsukhani**: cleanup boltdb files in queriers during startup/shutdown
  1512  * [2552](https://github.com/grafana/loki/pull/2552) **owen-d**: fixes batch metrics help text & corrects bucketing
  1513  * [2550](https://github.com/grafana/loki/pull/2550) **sandeepsukhani**: fix a flaky test in boltdb shipper
  1514  * [2548](https://github.com/grafana/loki/pull/2548) **sandeepsukhani**: add some metrics for monitoring compactor
  1515  * [2546](https://github.com/grafana/loki/pull/2546) **sandeepsukhani**: register boltdb shipper compactor cli flags
  1516  * [2543](https://github.com/grafana/loki/pull/2543) **sandeepsukhani**: revendor cortex to latest master
  1517  * [2534](https://github.com/grafana/loki/pull/2534) **owen-d**: Consistent chunk metrics
  1518  * [2530](https://github.com/grafana/loki/pull/2530) **sandeepsukhani**: minor fixes and improvements for boltdb shipper
  1519  * [2526](https://github.com/grafana/loki/pull/2526) **sandeepsukhani**: compactor for compacting boltdb files uploaded by shipper
  1520  * [2510](https://github.com/grafana/loki/pull/2510) **owen-d**: adds batch based metrics
  1521  * [2507](https://github.com/grafana/loki/pull/2507) **sandeepsukhani**: compress boltdb files to gzip while uploading from shipper
  1522  * [2458](https://github.com/grafana/loki/pull/2458) **owen-d**: Feature/ruler (take 2)
  1523  * [2487](https://github.com/grafana/loki/pull/2487) **sandeepsukhani**: upload boltdb files from shipper only when they are not expected to be modified or during shutdown
  1524  
  1525  #### Docs
  1526  * [2797](https://github.com/grafana/loki/pull/2797) **cyriltovena**: Logqlv2 docs
  1527  * [2772](https://github.com/grafana/loki/pull/2772) **DesistDaydream**: reapir Retention Example Configuration
  1528  * [2762](https://github.com/grafana/loki/pull/2762) **PabloCastellano**: fix: typo in upgrade.md
  1529  * [2750](https://github.com/grafana/loki/pull/2750) **owen-d**: fixes path in prom rules api docs
  1530  * [2733](https://github.com/grafana/loki/pull/2733) **owen-d**: Removes wrong capitalizations
  1531  * [2728](https://github.com/grafana/loki/pull/2728) **vishesh92**: Docs: Update docs for redis
  1532  * [2725](https://github.com/grafana/loki/pull/2725) **dvrkps**: fix some misspells
  1533  * [2724](https://github.com/grafana/loki/pull/2724) **MadhavJivrajani**: DOCS: change format of unordered lists in technical docs
  1534  * [2716](https://github.com/grafana/loki/pull/2716) **huikang**: Doc: fixing parameter name in configuration
  1535  * [2705](https://github.com/grafana/loki/pull/2705) **owen-d**: shows cortextool lint command for loki in alerting docs
  1536  * [2702](https://github.com/grafana/loki/pull/2702) **huikang**: Doc: fix broken links in production/README.md
  1537  * [2699](https://github.com/grafana/loki/pull/2699) **sandangel**: docs: use repetitive numbering
  1538  * [2698](https://github.com/grafana/loki/pull/2698) **bemasher**: Doc: Vague link text.
  1539  * [2697](https://github.com/grafana/loki/pull/2697) **owen-d**: updates alerting docs with new cortex tool loki linting support
  1540  * [2692](https://github.com/grafana/loki/pull/2692) **philnichol**: Docs: Corrected incorrect instances of (setup|set up)
  1541  * [2691](https://github.com/grafana/loki/pull/2691) **UniqueTokens**: Update metrics.md
  1542  * [2689](https://github.com/grafana/loki/pull/2689) **pgassmann**: docker plugin documentation update
  1543  * [2686](https://github.com/grafana/loki/pull/2686) **demon**: docs: Fix link to code of conduct
  1544  * [2657](https://github.com/grafana/loki/pull/2657) **owen-d**: fixes ruler docs & includes ruler configs in cmd/configs + docker img
  1545  * [2622](https://github.com/grafana/loki/pull/2622) **sandeepsukhani**: add compactor details and other boltdb-shipper doc improvments
  1546  * [2621](https://github.com/grafana/loki/pull/2621) **cyriltovena**: Fixes links in aws tutorials.
  1547  * [2606](https://github.com/grafana/loki/pull/2606) **cyriltovena**: More template stage examples.
  1548  * [2605](https://github.com/grafana/loki/pull/2605) **Decad**: Update docs to use raw link
  1549  * [2600](https://github.com/grafana/loki/pull/2600) **slim-bean**: Docs: Fix broken links on generated site
  1550  * [2597](https://github.com/grafana/loki/pull/2597) **nek-00-ken**: Fixup: url to access promtail config sample
  1551  * [2595](https://github.com/grafana/loki/pull/2595) **sh0rez**: docs: fix broken links
  1552  * [2594](https://github.com/grafana/loki/pull/2594) **wardbekker**: Update README.md
  1553  * [2592](https://github.com/grafana/loki/pull/2592) **owen-d**: fixes some doc links
  1554  * [2591](https://github.com/grafana/loki/pull/2591) **woodsaj**: Docs: fix links in installation docs
  1555  * [2586](https://github.com/grafana/loki/pull/2586) **ms42Q**: Doc fixes: remove typos and long sentence
  1556  * [2579](https://github.com/grafana/loki/pull/2579) **oddlittlebird**: Update CODEOWNERS
  1557  * [2566](https://github.com/grafana/loki/pull/2566) **owen-d**: Website doc link fixes
  1558  * [2528](https://github.com/grafana/loki/pull/2528) **owen-d**: Update tanka.md with steps for using k8s-alpha lib
  1559  * [2512](https://github.com/grafana/loki/pull/2512) **palemtnrider**: Documentation: Fixes  install and getting-started links in the readme
  1560  * [2508](https://github.com/grafana/loki/pull/2508) **owen-d**: memberlist correct yaml path. closes #2499
  1561  * [2506](https://github.com/grafana/loki/pull/2506) **ferdikurniawan**: Docs: fix dead link
  1562  * [2505](https://github.com/grafana/loki/pull/2505) **sh0rez**: doc: close code block
  1563  * [2501](https://github.com/grafana/loki/pull/2501) **tivvit**: fix incorrect upgrade link
  1564  * [2500](https://github.com/grafana/loki/pull/2500) **oddlittlebird**: Docs: Update README.md
  1565  
  1566  #### Helm
  1567  * [2746](https://github.com/grafana/loki/pull/2746) **marcosartori**: helm/fluentbit K8S-Logging.Exclude &  and Mem_Buf_Limit toggle
  1568  * [2742](https://github.com/grafana/loki/pull/2742) **steven-sheehy**: Fix linting errors and use of deprecated repositories
  1569  * [2659](https://github.com/grafana/loki/pull/2659) **rskrishnar**: [Promtail] enables configuring psp in helm chart
  1570  * [2554](https://github.com/grafana/loki/pull/2554) **alexandre-allard-scality**: production/helm: add support for PV selector in Loki statefulset
  1571  
  1572  #### FluentD
  1573  * [2739](https://github.com/grafana/loki/pull/2739) **jgehrcke**: FluentD loki plugin: add support for bearer_token_file parameter
  1574  
  1575  #### Fluent Bit
  1576  * [2568](https://github.com/grafana/loki/pull/2568) **zjj2wry**: fluent-bit plugin support TLS
  1577  
  1578  #### Promtail
  1579  * [2723](https://github.com/grafana/loki/pull/2723) **carlpett**: Promtail: Add counter promtail_batch_retries_total
  1580  * [2717](https://github.com/grafana/loki/pull/2717) **slim-bean**: Promtail: Fix deadlock on tailer shutdown.
  1581  * [2710](https://github.com/grafana/loki/pull/2710) **slim-bean**: Promtail: (and also fluent-bit) change the max batch size to 1MB
  1582  * [2708](https://github.com/grafana/loki/pull/2708) **Falco20019**: Promtail: Fix timestamp parser for short year format
  1583  * [2658](https://github.com/grafana/loki/pull/2658) **slim-bean**: Promtail: do not mark the position if the file is removed
  1584  * [2618](https://github.com/grafana/loki/pull/2618) **slim-bean**: Promtail: Add a stream lagging metric
  1585  * [2615](https://github.com/grafana/loki/pull/2615) **aminjam**: Add fallback_formats for timestamp stage
  1586  * [2603](https://github.com/grafana/loki/pull/2603) **rfratto**: Expose UserAgent and fix User-Agent version source
  1587  * [2575](https://github.com/grafana/loki/pull/2575) **unguiculus**: Promtail: Fix docker-compose.yaml
  1588  * [2571](https://github.com/grafana/loki/pull/2571) **rsteneteg**: Promtail: adding pipeline stage for dropping labels
  1589  * [2570](https://github.com/grafana/loki/pull/2570) **slim-bean**: Promtail: Fix concurrent map iteration when using stdin
  1590  * [2565](https://github.com/grafana/loki/pull/2565) **carlpett**: Add a counter for empty syslog messages
  1591  * [2542](https://github.com/grafana/loki/pull/2542) **slim-bean**: Promtail: implement shutdown for the no-op server
  1592  * [2532](https://github.com/grafana/loki/pull/2532) **slim-bean**: Promtail: Restart the tailer if we fail to read and upate current position
  1593  
  1594  #### Ksonnet
  1595  * [2719](https://github.com/grafana/loki/pull/2719) **halcyondude**: nit: fix formatting for ksonnet/loki
  1596  * [2677](https://github.com/grafana/loki/pull/2677) **sandeepsukhani**: fix jsonnet for memcached-writes when using boltdb-shipper
  1597  * [2617](https://github.com/grafana/loki/pull/2617) **periklis**: Add config options for loki dashboards
  1598  * [2612](https://github.com/grafana/loki/pull/2612) **fredr**: Dashboard: typo in Loki Operational dashboard
  1599  * [2599](https://github.com/grafana/loki/pull/2599) **sandeepsukhani**: fix closing bracket in dashboards from loki-mixin
  1600  * [2584](https://github.com/grafana/loki/pull/2584) **sandeepsukhani**: Read, Write and operational dashboard improvements
  1601  * [2560](https://github.com/grafana/loki/pull/2560) **owen-d**: Jsonnet/ruler
  1602  * [2547](https://github.com/grafana/loki/pull/2547) **sandeepsukhani**: jsonnet for running loki using boltdb-shipper
  1603  * [2525](https://github.com/grafana/loki/pull/2525) **Duologic**: fix(ksonnet): don't depend on specific k8s version
  1604  * [2521](https://github.com/grafana/loki/pull/2521) **charandas**: fix: broken links in Tanka documentation
  1605  * [2503](https://github.com/grafana/loki/pull/2503) **owen-d**: Ksonnet docs
  1606  * [2494](https://github.com/grafana/loki/pull/2494) **primeroz**: Jsonnet Promtail: Change function for mounting configmap in promtail daemonset
  1607  
  1608  #### Logstash
  1609  * [2607](https://github.com/grafana/loki/pull/2607) **adityacs**: Logstash cpu usage fix
  1610  
  1611  #### Build
  1612  * [2602](https://github.com/grafana/loki/pull/2602) **sandeepsukhani**: add support for building querytee
  1613  * [2561](https://github.com/grafana/loki/pull/2561) **tharun208**: Added logcli docker image
  1614  * [2549](https://github.com/grafana/loki/pull/2549) **simnv**: Ignore .exe files build for Windows
  1615  * [2527](https://github.com/grafana/loki/pull/2527) **owen-d**: Update docker-compose.yaml to use 1.6.0
  1616  
  1617  #### Docker Logging Driver
  1618  * [2459](https://github.com/grafana/loki/pull/2459) **RaitoBezarius**: Docker logging driver: Add a keymod for the extra attributes from the Docker logging driver
  1619  
  1620  ### Dependencies
  1621  
  1622  * Go Version:     1.14.2
  1623  * Cortex Version: 85942c5703cf22b64cecfd291e7e7c42d1b8c30c
  1624  
  1625  ## 1.6.1 (2020-08-24)
  1626  
  1627  This is a small release and only contains two fixes for Promtail:
  1628  
  1629  * [2542](https://github.com/grafana/loki/pull/2542) **slim-bean**: Promtail: implement shutdown for the no-op server
  1630  * [2532](https://github.com/grafana/loki/pull/2532) **slim-bean**: Promtail: Restart the tailer if we fail to read and upate current position
  1631  
  1632  The first only applies if you are running Promtail with both `--stdin` and `--server.disabled=true` flags.
  1633  
  1634  The second is a minor rework to how Promtail handles a very specific error when attempting to read the size of a file and failing to do so.
  1635  
  1636  Upgrading Promtail from 1.6.0 to 1.6.1 is only necessary if you have logs full of `msg="error getting tail position and/or size"`,
  1637  the code changed in this release has been unchanged for a long time and we suspect very few people are seeing this issue.
  1638  
  1639  No changes to any other components (Loki, Logcli, etc) are included in this release.
  1640  
  1641  ## 1.6.0 (2020-08-13)
  1642  
  1643  It's the second thursday of the eighth month of the year which means it's time for another Loki Release!!
  1644  
  1645  Before we highlight important features and changes, congratulations to [@adityacs](https://github.com/adityacs), who is the newest member of the Loki team!
  1646  Aditya has been regularly contributing to the Loki project for the past year, with each contribution better than the last.
  1647  Many of the items on the following list were thanks to his hard work. Thank you, Aditya, and welcome to the team!
  1648  
  1649  I think we might have set a new record with 189 PR's in this release!
  1650  
  1651  ### Important Notes
  1652  
  1653  **Please Note** There are several changes in this release which might require your attention!
  1654  
  1655  * The NET_BIND_SERVICE capability was removed from the Loki process in the docker image, it's no longer possible to run Loki with the supplied image on a port less than 1024
  1656  * If you run microservices, there is an important rollout sequence to prevent query errors.
  1657  * Scrape configs have changed for Promtail in both Helm and Ksonnet affecting two labels: `instance` -> `pod` and `container_name` -> `container`.
  1658  * Almost all of the Loki Canary metrics were renamed.
  1659  * A few command line flags where changed (although they are likely not commonly used)
  1660  * If you use ksonnet and run on GCS and Bigtable you may see an error in your config as a default value was removed.
  1661  * If you are using boltdb-shipper, you will likekly need to add a new schema_config entry.
  1662  
  1663  Check the [upgrade guide](https://github.com/grafana/loki/blob/master/docs/sources/operations/upgrade.md#160) for detailed information on all these changes.
  1664  
  1665  ### Notable Features and Fixes
  1666  
  1667  #### Query language enhancements
  1668  
  1669  * [2150](https://github.com/grafana/loki/pull/2150) introduces `bytes_rate`, which calculates the per second byte rate of a log stream, and `bytes_over_time`, which returns the byte size of a log stream.
  1670  * [2182](https://github.com/grafana/loki/pull/2182) introduces a long list of comparison operators, which will let you write queries like `count_over_time({foo="bar"}[1m]) > 10`. Check out the PR for a more detailed description.
  1671  
  1672  #### Loki performance improvements
  1673  
  1674  * [2216](https://github.com/grafana/loki/pull/2216), [2218](https://github.com/grafana/loki/pull/2218), and [2219](https://github.com/grafana/loki/pull/2219) all improve how memory is allocated and reused for queries.
  1675  * [2239](https://github.com/grafana/loki/pull/2239) is a huge improvement for certain cases in which a query covers a large number of streams that all overlap in time. Overlapping data is now internally cached while Loki works to sort all the streams into the proper time order.
  1676  * [2293](https://github.com/grafana/loki/pull/2293) was a big refactor to how Loki internally processes log queries vs. metric queries, creating separate code paths to further optimize metric queries. Metric query performance is now 2 to 10 times faster.
  1677  
  1678  If you are using the query-frontend:
  1679  
  1680  * [2441](https://github.com/grafana/loki/pull/2441) improves how label queries can be split and queried in parallel
  1681  * [2123](https://github.com/grafana/loki/pull/2123) allows queries to the `series` API to be split by time and parallelized; and last but most significant
  1682  * [1927](https://github.com/grafana/loki/pull/1927) allows for a much larger range of queries to be sharded and performed in parallel. Query sharding is a topic in itself, but as a rough summary, this type of sharding is not time dependent and leverages how data is already stored by Loki to be able to split queries up into 16 separate pieces to be queried at the same time.
  1683  
  1684  #### Promtail
  1685  
  1686  * [2296](https://github.com/grafana/loki/pull/2296) allows Promtail to expose the Loki Push API. With this, you can push from any client to Promtail as if it were Loki, and Promtail can then forward those logs to another Promtail or to Loki. There are some good use cases for this with the Loki Docker Logging Driver; if you want an easier way to configure pipelines or expose metrics collection, point your Docker drivers at a Promtail instance.
  1687  * [2282](https://github.com/grafana/loki/pull/2282) contains an example Amazon Lambda where you can use a fan-in approach and ingestion timestamping in Promtail to work around `out of order` issues with multiple Lambdas processing the same log stream. This is one way to get logs from a high-cardinality source without adding a high-cardinality label.
  1688  * [2060](https://github.com/grafana/loki/pull/2060) introduces the `Replace` stage, which lets you find and replace or remove text inside a log line. Combined with [2422](https://github.com/grafana/loki/pull/2422) and [2480](https://github.com/grafana/loki/pull/2480), you can now find and replace sensitive data in a log line like a password or email address and replace it with ****, or hash the value to prevent readability, while still being able to trace the value through your logs. Last on the list of pipeline additions,
  1689  * [2496](https://github.com/grafana/loki/pull/2496) adds a `Drop` pipeline stage, which lets you drop log lines based on several criteria options including regex matching content, line length, or the age of the log line. The last two are useful to prevent sending to Loki logs that you know would be rejected based on configured limits in the Loki server.
  1690  
  1691  #### Logstash output plugin
  1692  
  1693  * [1822](https://github.com/grafana/loki/pull/1822) added a Logstash output plugin for Loki. If you have an existing Logstash install, you can now use this plugin to send your logs to Loki to make it easier to try out, or use Loki alongside an existing logging installation.
  1694  
  1695  #### Loki Canary
  1696  
  1697  * [2344](https://github.com/grafana/loki/pull/2344) improved the canaries capabilities for checking for data integrity, including spot checking for logs over a longer time window and running metric queries to verify count_over_time accuracy.
  1698  
  1699  #### Logcli
  1700  
  1701  * [2470](https://github.com/grafana/loki/pull/2470) allows you to color code your log lines based on their stream labels for a nice visual indicator of streams.
  1702  * [2497](https://github.com/grafana/loki/pull/2497) expands on the series API query to Loki with the`--analyze-labels` flag, which can show you a detailed breakdown of your label key and value combinations. This is very useful for finding improper label usage in Loki or labels with high cardinality.
  1703  * [2482](https://github.com/grafana/loki/pull/2482), in which LogCLI will automatically batch requests to Loki to allow making queries with a `--limit=` far larger than the server side limit defined in Loki. LogCLI will dispatch the request in a series of queries configured by the `--batch=` parameter (which defaults to 1000) until the requested limit is reached!
  1704  
  1705  #### Misc
  1706  
  1707  * [2453](https://github.com/grafana/loki/pull/2453) improves the error messages when a query times out, as `Context Deadline Exceeded` wasn’t the most intuitive.
  1708  * [2336](https://github.com/grafana/loki/pull/2336) provides two new flags that will print the entire Loki config object at startup. Be warned there are a lot of config options, and many won’t apply to your setup (such as storage configs you aren’t using), but this can be a really useful tool when troubleshooting. Sticking with the theme of best for last,
  1709  * [2224](https://github.com/grafana/loki/pull/2224) and [2288](https://github.com/grafana/loki/pull/2288) improve support for running Loki with a shared Ring using memberlist while not requiring Consul or Etcd. We need to follow up soon with some better documentation or a blog post on this!
  1710  
  1711  
  1712  ### Dependencies
  1713  
  1714  * Go Version:     1.14.2
  1715  * Cortex Version: 7014ff11ed70d9d59ad29d0a95e73999c436c47c
  1716  
  1717  ### All Changes
  1718  
  1719  #### Loki
  1720  * [2484](https://github.com/grafana/loki/pull/2484) **slim-bean**: Loki: fix batch iterator error when all chunks overlap and chunk time ranges are greater than query time range
  1721  * [2483](https://github.com/grafana/loki/pull/2483) **sandeepsukhani**: download boltdb files parallelly during reads
  1722  * [2472](https://github.com/grafana/loki/pull/2472) **owen-d**: series endpoint uses normal splits
  1723  * [2466](https://github.com/grafana/loki/pull/2466) **owen-d**: BatchIter edge cases
  1724  * [2463](https://github.com/grafana/loki/pull/2463) **sandeepsukhani**: revendor cortex to latest master
  1725  * [2457](https://github.com/grafana/loki/pull/2457) **adityacs**: Fix panic in cassandra storage while registering metrics
  1726  * [2453](https://github.com/grafana/loki/pull/2453) **slim-bean**: Loki: Improve error messages on query timeout or cancel
  1727  * [2450](https://github.com/grafana/loki/pull/2450) **adityacs**: Fixes panic in runtime_config
  1728  * [2449](https://github.com/grafana/loki/pull/2449) **jvrplmlmn**: Replace usage of sync/atomic with uber-go/atomic
  1729  * [2441](https://github.com/grafana/loki/pull/2441) **cyriltovena**: Split label names queries in the frontend.
  1730  * [2427](https://github.com/grafana/loki/pull/2427) **owen-d**: Revendor cortex
  1731  * [2392](https://github.com/grafana/loki/pull/2392) **owen-d**: avoid mutating config while parsing -config.file
  1732  * [2346](https://github.com/grafana/loki/pull/2346) **cyriltovena**: Fixes LogQL grouping
  1733  * [2336](https://github.com/grafana/loki/pull/2336) **slim-bean**: Loki: add -print-config-stderr flag to dump loki's runtime config to stderr
  1734  * [2330](https://github.com/grafana/loki/pull/2330) **slim-bean**: Loki: Use a new context to update the ring state after a failed chunk transfer
  1735  * [2328](https://github.com/grafana/loki/pull/2328) **slim-bean**: Loki: Transfer one chunk at a time per series during chunk transfers
  1736  * [2327](https://github.com/grafana/loki/pull/2327) **adityacs**: Fix data race in ingester
  1737  * [2323](https://github.com/grafana/loki/pull/2323) **cyriltovena**: Improve object key parsing for boltdb shipper.
  1738  * [2306](https://github.com/grafana/loki/pull/2306) **cyriltovena**: Fixes buffered iterator skipping very long lines.
  1739  * [2302](https://github.com/grafana/loki/pull/2302) **cyriltovena**: Improve entry deduplication.
  1740  * [2294](https://github.com/grafana/loki/pull/2294) **cyriltovena**: Remove NET_BIND_SERVICE capability requirement.
  1741  * [2293](https://github.com/grafana/loki/pull/2293) **cyriltovena**: Improve metric queries by computing samples at the edges.
  1742  * [2288](https://github.com/grafana/loki/pull/2288) **periklis**: Add support for memberlist dns-based discovery
  1743  * [2268](https://github.com/grafana/loki/pull/2268) **owen-d**: lock fix for flaky test
  1744  * [2266](https://github.com/grafana/loki/pull/2266) **cyriltovena**: Update to latest cortex.
  1745  * [2264](https://github.com/grafana/loki/pull/2264) **adityacs**: Fix ingester results for series query
  1746  * [2261](https://github.com/grafana/loki/pull/2261) **sandeepsukhani**: create smaller unique files from boltdb shipper and other code refactorings
  1747  * [2254](https://github.com/grafana/loki/pull/2254) **slim-bean**: Loki: Series API will return all series with no match or empty matcher
  1748  * [2252](https://github.com/grafana/loki/pull/2252) **owen-d**: avoids further time splitting in querysharding mware
  1749  * [2250](https://github.com/grafana/loki/pull/2250) **slim-bean**: Loki: Remove redundant log warning
  1750  * [2249](https://github.com/grafana/loki/pull/2249) **owen-d**: avoids recording stats in the sharded engine
  1751  * [2248](https://github.com/grafana/loki/pull/2248) **cyriltovena**: Add performance profile flags for logcli.
  1752  * [2239](https://github.com/grafana/loki/pull/2239) **cyriltovena**: Cache overlapping blocks
  1753  * [2224](https://github.com/grafana/loki/pull/2224) **periklis**: Replace memberlist service in favor of cortex provided service
  1754  * [2223](https://github.com/grafana/loki/pull/2223) **adityacs**: Add Error method for step evaluators
  1755  * [2219](https://github.com/grafana/loki/pull/2219) **cyriltovena**: Reuse slice for the range vector allocations.
  1756  * [2218](https://github.com/grafana/loki/pull/2218) **cyriltovena**: Reuse buffer for hash computation in the engine.
  1757  * [2216](https://github.com/grafana/loki/pull/2216) **cyriltovena**: Improve point allocations for each steps in the logql engine.
  1758  * [2211](https://github.com/grafana/loki/pull/2211) **sandeepsukhani**: query tee proxy with support for comparison of responses
  1759  * [2206](https://github.com/grafana/loki/pull/2206) **sandeepsukhani**: disable index dedupe when rf > 1 and current or upcoming index type is boltdb-shipper
  1760  * [2204](https://github.com/grafana/loki/pull/2204) **owen-d**: bumps cortex & fixes conflicts
  1761  * [2191](https://github.com/grafana/loki/pull/2191) **periklis**: Add flag to disable tracing activation
  1762  * [2189](https://github.com/grafana/loki/pull/2189) **owen-d**: Fix vector-scalar comparisons
  1763  * [2182](https://github.com/grafana/loki/pull/2182) **owen-d**: Logql comparison ops
  1764  * [2178](https://github.com/grafana/loki/pull/2178) **cyriltovena**: Fixes path prefix in the querier.
  1765  * [2166](https://github.com/grafana/loki/pull/2166) **sandeepsukhani**: enforce requirment for periodic config for index tables to be 24h when using boltdb shipper
  1766  * [2161](https://github.com/grafana/loki/pull/2161) **cyriltovena**: Fix error message for max tail connections.
  1767  * [2156](https://github.com/grafana/loki/pull/2156) **sandeepsukhani**: boltdb shipper download failure handling and some refactorings
  1768  * [2150](https://github.com/grafana/loki/pull/2150) **cyriltovena**: Bytes aggregations
  1769  * [2136](https://github.com/grafana/loki/pull/2136) **cyriltovena**: Fixes Iterator boundaries
  1770  * [2123](https://github.com/grafana/loki/pull/2123) **adityacs**: Fix Series API slowness
  1771  * [1927](https://github.com/grafana/loki/pull/1927) **owen-d**: Feature/querysharding ii
  1772  * [2032](https://github.com/grafana/loki/pull/2032) **tivvit**: Added support for tail to query frontend
  1773  
  1774  #### Promtail
  1775  * [2496](https://github.com/grafana/loki/pull/2496) **slim-bean**: Promtail: Drop stage
  1776  * [2475](https://github.com/grafana/loki/pull/2475) **slim-bean**: Promtail: force the log level on any Loki Push API target servers to match Promtail's log level.
  1777  * [2474](https://github.com/grafana/loki/pull/2474) **slim-bean**: Promtail: use --client.external-labels for all clients
  1778  * [2471](https://github.com/grafana/loki/pull/2471) **owen-d**: Fix/promtail yaml config
  1779  * [2464](https://github.com/grafana/loki/pull/2464) **slim-bean**: Promtail: Bug: loki push api, clone labels before handling
  1780  * [2438](https://github.com/grafana/loki/pull/2438) **rfratto**: pkg/promtail: propagate a logger rather than using util.Logger globally
  1781  * [2432](https://github.com/grafana/loki/pull/2432) **pyr0hu**: Promtail: Allow empty replace values for replace stage
  1782  * [2422](https://github.com/grafana/loki/pull/2422) **wardbekker**: Template: Added a sha256 template function for obfuscating / anonymize PII data in e.g. the replace stage
  1783  * [2414](https://github.com/grafana/loki/pull/2414) **rfratto**: Add RegisterFlagsWithPrefix to config structs
  1784  * [2386](https://github.com/grafana/loki/pull/2386) **cyriltovena**: Add regex function to promtail template stage.
  1785  * [2345](https://github.com/grafana/loki/pull/2345) **adityacs**: Refactor Promtail target manager code
  1786  * [2301](https://github.com/grafana/loki/pull/2301) **flixr**: Promtail: support unix timestamps with fractional seconds
  1787  * [2296](https://github.com/grafana/loki/pull/2296) **slim-bean**: Promtail: Loki Push API
  1788  * [2282](https://github.com/grafana/loki/pull/2282) **owen-d**: Lambda-Promtail
  1789  * [2242](https://github.com/grafana/loki/pull/2242) **carlpett**: Set user agent on outgoing http requests
  1790  * [2196](https://github.com/grafana/loki/pull/2196) **cyriltovena**: Adds default -config.file for the promtail docker images.
  1791  * [2127](https://github.com/grafana/loki/pull/2127) **bastjan**: Update go-syslog to accept non-UTF8 encoding in syslog message
  1792  * [2111](https://github.com/grafana/loki/pull/2111) **adityacs**: Fix Promtail journal seeking known position
  1793  * [2105](https://github.com/grafana/loki/pull/2105) **fatpat**: promtail: Add Entry variable to template
  1794  * [1118](https://github.com/grafana/loki/pull/1118) **shuttie**: promtail: fix high CPU usage on large kubernetes clusters.
  1795  * [2060](https://github.com/grafana/loki/pull/2060) **adityacs**: Feature: Replace stage in pipeline
  1796  * [2087](https://github.com/grafana/loki/pull/2087) **adityacs**: Set JournalTarget Priority value to keyword
  1797  
  1798  #### Logcli
  1799  * [2497](https://github.com/grafana/loki/pull/2497) **slim-bean**: logcli: adds --analyize-labels to logcli series command and changes how labels are provided to the command
  1800  * [2482](https://github.com/grafana/loki/pull/2482) **slim-bean**: Logcli: automatically batch requests
  1801  * [2470](https://github.com/grafana/loki/pull/2470) **adityacs**: colored labels output for logcli
  1802  * [2235](https://github.com/grafana/loki/pull/2235) **pstibrany**: logcli: Remove single newline from the raw line before printing.
  1803  * [2126](https://github.com/grafana/loki/pull/2126) **cyriltovena**: Validate local storage config for the logcli
  1804  * [2083](https://github.com/grafana/loki/pull/2083) **adityacs**: Support querying labels on time range in logcli
  1805  
  1806  #### Docs
  1807  * [2473](https://github.com/grafana/loki/pull/2473) **owen-d**: fixes lambda-promtail relative doc link
  1808  * [2454](https://github.com/grafana/loki/pull/2454) **oddlittlebird**: Create CODEOWNERS
  1809  * [2439](https://github.com/grafana/loki/pull/2439) **till**: Docs: updated "Upgrading" for docker driver
  1810  * [2437](https://github.com/grafana/loki/pull/2437) **wardbekker**: DOCS: clarified globbing behaviour of __path__ of the doublestar library
  1811  * [2431](https://github.com/grafana/loki/pull/2431) **endu**: fix dead link
  1812  * [2425](https://github.com/grafana/loki/pull/2425) **RichiH**: Change conduct contact email address
  1813  * [2420](https://github.com/grafana/loki/pull/2420) **petuhovskiy**: Fix docker driver doc
  1814  * [2418](https://github.com/grafana/loki/pull/2418) **cyriltovena**: Add logstash to clients page with FrontMatter.
  1815  * [2402](https://github.com/grafana/loki/pull/2402) **cyriltovena**: More fixes for the website.
  1816  * [2400](https://github.com/grafana/loki/pull/2400) **tontongg**: Fix URL to LogQL documentation
  1817  * [2398](https://github.com/grafana/loki/pull/2398) **robbymilo**: Docs - update links, readme
  1818  * [2397](https://github.com/grafana/loki/pull/2397) **coderanger**: 📝 Note that entry_parser is deprecated.
  1819  * [2396](https://github.com/grafana/loki/pull/2396) **dnsmichi**: Docs: Fix Fluentd title (visible in menu)
  1820  * [2391](https://github.com/grafana/loki/pull/2391) **cyriltovena**: Update fluentd docs and fixes links for the website.
  1821  * [2390](https://github.com/grafana/loki/pull/2390) **cyriltovena**: Fluent bit docs
  1822  * [2389](https://github.com/grafana/loki/pull/2389) **cyriltovena**: Docker driver doc
  1823  * [2385](https://github.com/grafana/loki/pull/2385) **abowloflrf**: Update logo link in README.md
  1824  * [2378](https://github.com/grafana/loki/pull/2378) **robbymilo**: Sync docs to website
  1825  * [2360](https://github.com/grafana/loki/pull/2360) **owen-d**: Makes timestamp parsing docs clearer
  1826  * [2358](https://github.com/grafana/loki/pull/2358) **rille111**: Documentation: Add example for having separate pvc for loki, using helm
  1827  * [2357](https://github.com/grafana/loki/pull/2357) **owen-d**: Storage backend examples
  1828  * [2338](https://github.com/grafana/loki/pull/2338) **cyriltovena**: Add a complete tutorial on how to ship logs from AWS EKS.
  1829  * [2335](https://github.com/grafana/loki/pull/2335) **cyriltovena**: Improve documentation of the metric stage.
  1830  * [2331](https://github.com/grafana/loki/pull/2331) **cyriltovena**: Add a tutorial to forward AWS ECS logs to Loki.
  1831  * [2321](https://github.com/grafana/loki/pull/2321) **cyriltovena**: Tutorial to run Promtail on AWS EC2
  1832  * [2318](https://github.com/grafana/loki/pull/2318) **adityacs**: Configuration documentation improvements
  1833  * [2317](https://github.com/grafana/loki/pull/2317) **owen-d**: remove DynamoDB chunk store doc
  1834  * [2308](https://github.com/grafana/loki/pull/2308) **wardbekker**: Added a link to the replace parsing stage
  1835  * [2305](https://github.com/grafana/loki/pull/2305) **rafaelpissolatto**: Fix schema_config store value
  1836  * [2285](https://github.com/grafana/loki/pull/2285) **adityacs**: Fix local.md doc
  1837  * [2284](https://github.com/grafana/loki/pull/2284) **owen-d**: Update local.md
  1838  * [2279](https://github.com/grafana/loki/pull/2279) **Fra-nk**: Documentation: Refine LogQL documentation
  1839  * [2273](https://github.com/grafana/loki/pull/2273) **RichiH**: Fix typo
  1840  * [2247](https://github.com/grafana/loki/pull/2247) **carlpett**: docs: Fix missing quotes
  1841  * [2233](https://github.com/grafana/loki/pull/2233) **vyzigold**: docs: Add readmes to individual helm charts
  1842  * [2220](https://github.com/grafana/loki/pull/2220) **oddlittlebird**: Docs: Local install edits
  1843  * [2217](https://github.com/grafana/loki/pull/2217) **fredr**: docs: BoltDB typo
  1844  * [2215](https://github.com/grafana/loki/pull/2215) **fredr**: docs: Correct loki address for docker-compose
  1845  * [2172](https://github.com/grafana/loki/pull/2172) **cyriltovena**: Update old link for pipeline stages.
  1846  * [2163](https://github.com/grafana/loki/pull/2163) **slim-bean**: docs: fix an error in the example log line and byte counter metrics
  1847  * [2160](https://github.com/grafana/loki/pull/2160) **slim-bean**: Fix some errors in the upgrade guide to 1.5.0 and add some missing notes discovered by users.
  1848  * [2152](https://github.com/grafana/loki/pull/2152) **eamonryan**: Fix typo in promtail ClusterRole
  1849  * [2139](https://github.com/grafana/loki/pull/2139) **adityacs**: Fix configuration docs
  1850  * [2137](https://github.com/grafana/loki/pull/2137) **RichiH**: Propose new governance
  1851  * [2136](https://github.com/grafana/loki/pull/2136) **cyriltovena**: Fixes Iterator boundaries
  1852  * [2125](https://github.com/grafana/loki/pull/2125) **theMercedes**: Update logql.md
  1853  * [2112](https://github.com/grafana/loki/pull/2112) **nileshcs**: Documentation: Outdated fluentd image name, UID details, link update
  1854  * [2092](https://github.com/grafana/loki/pull/2092) **i-takizawa**: docs: make <placeholders> visible
  1855  
  1856  #### Build
  1857  * [2467](https://github.com/grafana/loki/pull/2467) **slim-bean**: Update Loki build image
  1858  
  1859  #### Ksonnet
  1860  * [2460](https://github.com/grafana/loki/pull/2460) **Duologic**: refactor: use $.core.v1.envVar
  1861  * [2452](https://github.com/grafana/loki/pull/2452) **slim-bean**: ksonnet: Reduce querier parallelism to a more sane default value and remove the default setting for storage_backend
  1862  * [2377](https://github.com/grafana/loki/pull/2377) **Duologic**: refactor: moved jaeger-agent-mixin
  1863  * [2373](https://github.com/grafana/loki/pull/2373) **slim-bean**: Ksonnet: Add a Pod Disruption Budget to Loki Ingesters
  1864  * [2185](https://github.com/grafana/loki/pull/2185) **cyriltovena**: Refactor mixin routes and add series API.
  1865  * [2162](https://github.com/grafana/loki/pull/2162) **slim-bean**: ksonnet: Fix up datasources and variables in Loki Operational
  1866  * [2091](https://github.com/grafana/loki/pull/2091) **beorn7**: Keep scrape config in line with the new Prometheus scrape config
  1867  
  1868  #### Docker logging driver
  1869  * [2435](https://github.com/grafana/loki/pull/2435) **cyriltovena**: Add more precisions on the docker driver installed on the daemon.
  1870  * [2343](https://github.com/grafana/loki/pull/2343) **jdfalk**: loki-docker-driver: Change "ignoring empty line" to debug logging
  1871  * [2295](https://github.com/grafana/loki/pull/2295) **cyriltovena**: Remove mount in the docker driver.
  1872  * [2199](https://github.com/grafana/loki/pull/2199) **cyriltovena**: Docker driver relabeling
  1873  * [2116](https://github.com/grafana/loki/pull/2116) **cyriltovena**: Allows to change the log driver mode and buffer size.
  1874  
  1875  #### Logstash output plugin
  1876  * [2415](https://github.com/grafana/loki/pull/2415) **cyriltovena**: Set service values via --set for logstash.
  1877  * [2410](https://github.com/grafana/loki/pull/2410) **adityacs**: logstash code refactor and doc improvements
  1878  * [1822](https://github.com/grafana/loki/pull/1822) **adityacs**: Loki Logstash Plugin
  1879  
  1880  #### Loki canary
  1881  * [2413](https://github.com/grafana/loki/pull/2413) **slim-bean**: Loki-Canary: Backoff retries on query failures, add histograms for query performance.
  1882  * [2369](https://github.com/grafana/loki/pull/2369) **slim-bean**: Loki Canary: One more round of improvements to query for missing websocket entries up to max-wait
  1883  * [2350](https://github.com/grafana/loki/pull/2350) **slim-bean**: Canary tweaks
  1884  * [2344](https://github.com/grafana/loki/pull/2344) **slim-bean**: Loki-Canary: Add query spot checking and metric count checking
  1885  * [2259](https://github.com/grafana/loki/pull/2259) **ombre8**: Canary: make stream configurable
  1886  
  1887  #### Fluentd
  1888  * [2407](https://github.com/grafana/loki/pull/2407) **cyriltovena**: bump fluentd version to release a new gem.
  1889  * [2399](https://github.com/grafana/loki/pull/2399) **tarokkk**: fluentd: Make fluentd version requirements permissive
  1890  * [2179](https://github.com/grafana/loki/pull/2179) **takanabe**: Improve fluentd plugin development experience
  1891  * [2171](https://github.com/grafana/loki/pull/2171) **takanabe**: Add server TLS certificate verification
  1892  
  1893  #### Fluent Bit
  1894  * [2375](https://github.com/grafana/loki/pull/2375) **cyriltovena**: Fixes the fluentbit batchwait  backward compatiblity.
  1895  * [2367](https://github.com/grafana/loki/pull/2367) **dojci**: fluent-bit: Add more loki client configuration options
  1896  * [2365](https://github.com/grafana/loki/pull/2365) **dojci**: fluent-bit: Fix fluent-bit exit callback when buffering is enabled
  1897  * [2290](https://github.com/grafana/loki/pull/2290) **cyriltovena**: Fixes the lint issue merged to master.
  1898  * [2286](https://github.com/grafana/loki/pull/2286) **adityacs**: Fix fluent-bit newline and tab characters
  1899  * [2142](https://github.com/grafana/loki/pull/2142) **dojci**: Add FIFO queue persistent buffering for fluent bit output plugin
  1900  * [2089](https://github.com/grafana/loki/pull/2089) **FrederikNS**: Allow configuring more options for output configuration
  1901  
  1902  #### Helm
  1903  * [2406](https://github.com/grafana/loki/pull/2406) **steven-sheehy**: Helm: Fix regression in chart name
  1904  * [2379](https://github.com/grafana/loki/pull/2379) **StevenReitsma**: production/helm: Add emptyDir volume type to promtail PSP
  1905  * [2366](https://github.com/grafana/loki/pull/2366) **StevenReitsma**: production/helm: Add projected and downwardAPI volume types to PodSecurityPolicy (#2355)
  1906  * [2258](https://github.com/grafana/loki/pull/2258) **Synehan**: helm: add annotations to service monitor
  1907  * [2241](https://github.com/grafana/loki/pull/2241) **chauffer**: Kubernetes manifests: Remove namespace from cluster-wide resources
  1908  * [2238](https://github.com/grafana/loki/pull/2238) **vhrosales**: helm: Add loadBalancerIP option to loki chart
  1909  * [2205](https://github.com/grafana/loki/pull/2205) **joschi36**: BUG: add missing namespace in ingress object
  1910  * [2197](https://github.com/grafana/loki/pull/2197) **cyriltovena**: Render loki datasources even if Grafana is disabled.
  1911  * [2141](https://github.com/grafana/loki/pull/2141) **cyriltovena**: Adds the ability to have a pull secrets for Promtail.
  1912  * [2099](https://github.com/grafana/loki/pull/2099) **allout58**: helm/loki-stack: Support Prometheus on a sub-path in Grafana config
  1913  * [2086](https://github.com/grafana/loki/pull/2086) **osela**: helm/loki-stack: render loki datasource only if grafana is enabled
  1914  * [2091](https://github.com/grafana/loki/pull/2091) **beorn7**: Keep scrape config in line with the new Prometheus scrape config
  1915  
  1916  #### Build
  1917  * [2371](https://github.com/grafana/loki/pull/2371) **cyriltovena**: Fixes helm publish that needs now to add repo.
  1918  * [2341](https://github.com/grafana/loki/pull/2341) **slim-bean**: Build: Fix CI helm test
  1919  * [2309](https://github.com/grafana/loki/pull/2309) **cyriltovena**: Test again arm32 on internal ci.
  1920  * [2307](https://github.com/grafana/loki/pull/2307) **cyriltovena**: Removes arm32 for now as we're migrating the CI.
  1921  * [2287](https://github.com/grafana/loki/pull/2287) **wardbekker**: Change the Grafana image to latest
  1922  * [2212](https://github.com/grafana/loki/pull/2212) **roidelapluie**: Remove unhelpful/problematic term in circleci.yml
  1923  
  1924  
  1925  ## 1.5.0 (2020-05-20)
  1926  
  1927  It's been a busy month and a half since 1.4.0 was released, and a lot of new improvements have been added to Loki since!
  1928  
  1929  Be prepared for some configuration changes that may cause some bumps when upgrading,
  1930  we apologize for this but are always striving to reach the right compromise of code simplicity and user/operating experience.
  1931  
  1932  In this case we opted to keep a simplified configuration inline with Cortex rather than a more complicated and error prone internal config mapping or difficult to implement support for multiple config names for the same feature.
  1933  
  1934  This does result in breaking config changes for some configurations, however, these will fail fast and with the [list of diffs](https://cortexmetrics.io/docs/changelog/#config-file-breaking-changes) from the Cortex project should be quick to fix.
  1935  
  1936  ### Important Notes
  1937  
  1938  **Be prepared for breaking config changes.**  Loki 1.5.0 vendors cortex [v1.0.1-0.20200430170006-3462eb63f324](https://github.com/cortexproject/cortex/commit/3462eb63f324c649bbaa122933bc591b710f4e48),
  1939  there were substantial breaking config changes in Cortex 1.0 which standardized config options, and fixed typos.
  1940  
  1941  **The Loki docker image user has changed to no longer be root**
  1942  
  1943  Check the [upgrade guide](https://github.com/grafana/loki/blob/master/docs/sources/operations/upgrade.md#150) for more detailed information on these changes.
  1944  
  1945  ### Notable Features and Fixes
  1946  
  1947  There are quite a few we want to mention listed in order they were merged (mostly)
  1948  
  1949  * [1837](https://github.com/grafana/loki/pull/1837) **sandeepsukhani**: flush boltdb to object store
  1950  
  1951  This is perhaps the most exciting feature of 1.5.0, the first steps in removing a dependency on a separate index store!  This feature is still very new and experimental, however, we want this to be the future for Loki.  Only requiring just an object store.
  1952  
  1953  If you want to test this new feature, and help us find any bugs, check out the [docs](docs/operations/storage/boltdb-shipper.md) to learn more and get started.
  1954  
  1955  * [2073](https://github.com/grafana/loki/pull/2073) **slim-bean**: Loki: Allow configuring query_store_max_look_back_period when running a filesystem store and boltdb-shipper
  1956  
  1957  This is even more experimental than the previous feature mentioned however also pretty exciting for Loki users who use the filesystem storage. We can leverage changes made in [1837](https://github.com/grafana/loki/pull/1837) to now allow Loki to run in a clustered mode with individual filesystem stores!
  1958  
  1959  Please check out the last section in the [filesystem docs](docs/operations/storage/filesystem.md) for more details on how this works and how to use it!
  1960  
  1961  * [2095](https://github.com/grafana/loki/pull/2095) **cyriltovena**: Adds backtick for the quoted string token lexer.
  1962  
  1963  This will come as a big win to anyone who is writing complicated reqular expressions in either their Label matchers or Filter Expressions.  Starting now you can use the backtick to encapsulate your regex **and not have to do any escaping of special characters!!**
  1964  
  1965  Examples:
  1966  
  1967  ```
  1968  {name="cassandra"} |~ `error=\w+`
  1969  {name!~`mysql-\d+`}
  1970  ```
  1971  
  1972  * [2055](https://github.com/grafana/loki/pull/2055) **aknuds1**: Chore: Fix spelling of per second in code
  1973  
  1974  This is technically a breaking change for anyone who wrote code to processes the new statistics output in the query result added in 1.4.0, we apologize to anyone in this situation but if we don't fix this kind of error now it will be there forever.
  1975  And at the same time we didn't feel it was appropriate to make any major api revision changes for such a new feature and simple change.  We are always trying to use our best judgement in cases like this.
  1976  
  1977  * [2031](https://github.com/grafana/loki/pull/2031) **cyriltovena**: Improve protobuf serialization
  1978  
  1979  Thanks @cyriltovena for another big performance improvement in Loki, this time around protbuf's!
  1980  
  1981  * [2021](https://github.com/grafana/loki/pull/2021) **slim-bean**: Loki: refactor validation and improve error messages
  1982  * [2012](https://github.com/grafana/loki/pull/2012) **slim-bean**: Loki: Improve logging and add metrics to streams dropped by stream limit
  1983  
  1984  These two changes standardize the metrics used to report when a tenant hits a limit, now all discarded samples should be reported under `loki_discarded_samples_total` and you no longer need to also reference `cortex_discarded_samples_total`.
  1985  Additionally error messages were improved to help clients take better action when hitting limits.
  1986  
  1987  * [1970](https://github.com/grafana/loki/pull/1970) **cyriltovena**: Allow to aggregate binary operations.
  1988  
  1989  Another nice improvement to the query language which allows queries like this to work now:
  1990  
  1991  ```
  1992  sum by (job) (count_over_time({namespace="tns"}[5m] |= "level=error") / count_over_time({namespace="tns"}[5m]))
  1993  ```
  1994  
  1995  * [1713](https://github.com/grafana/loki/pull/1713) **adityacs**: Log error message for invalid checksum
  1996  
  1997  In the event something went wrong with a stored chunk, rather than fail the query we ignore the chunk and return the rest.
  1998  
  1999  * [2066](https://github.com/grafana/loki/pull/2066) **slim-bean**: Promtail: metrics stage can also count line bytes
  2000  
  2001  This is a nice extension to a previous feature which let you add a metric to count log lines per stream, you can now count log bytes per stream.
  2002  
  2003  Check out [this example](docs/clients/promtail/configuration.md#counter) to configure this in your promtail pipelines.
  2004  
  2005  * [1935](https://github.com/grafana/loki/pull/1935) **cyriltovena**: Support stdin target via flag instead of automatic detection.
  2006  
  2007  Third times a charm!  With 1.4.0 we allowed sending logs directly to promtail via stdin, with 1.4.1 we released a patch for this feature which wasn't detecting stdin correctly on some operating systems.
  2008  Unfortunately after a few more bug reports it seems this change caused some more undesired side effects so we decided to not try to autodetect stdin at all, instead now you must pass the `--stdin` flag if you want Promtail to listen for logs on stdin.
  2009  
  2010  * [2076](https://github.com/grafana/loki/pull/2076) **cyriltovena**: Allows to pass inlined pipeline stages to the docker driver.
  2011  * [1906](https://github.com/grafana/loki/pull/1906) **cyriltovena**: Add no-file and keep-file log option for docker driver.
  2012  
  2013  The docker logging driver received a couple very nice updates, it's always been challenging to configure pipeline stages for the docker driver, with the first PR there are now a few easier ways to do this!
  2014  In the second PR we added config options to control keeping any log files on the host when using the docker logging driver, allowing you to run with no disk access if you would like, as well as allowing you to control keeping log files available after container restarts.
  2015  
  2016  * [1864](https://github.com/grafana/loki/pull/1864) **cyriltovena**: Sign helm package with GPG.
  2017  
  2018  We now GPG sign helm packages!
  2019  
  2020  ### All Changes
  2021  
  2022  #### Loki
  2023  
  2024  * [2097](https://github.com/grafana/loki/pull/2097) **owen-d**: simplifies/updates some of our configuration examples
  2025  * [2095](https://github.com/grafana/loki/pull/2095) **cyriltovena**: Adds backtick for the quoted string token lexer.
  2026  * [2093](https://github.com/grafana/loki/pull/2093) **cyriltovena**: Fixes unit in stats request log.
  2027  * [2088](https://github.com/grafana/loki/pull/2088) **slim-bean**: Loki: allow no encoding/compression on chunks
  2028  * [2078](https://github.com/grafana/loki/pull/2078) **owen-d**: removes yolostring
  2029  * [2073](https://github.com/grafana/loki/pull/2073) **slim-bean**: Loki: Allow configuring query_store_max_look_back_period when running a filesystem store and boltdb-shipper
  2030  * [2064](https://github.com/grafana/loki/pull/2064) **cyriltovena**: Reverse entry iterator pool
  2031  * [2059](https://github.com/grafana/loki/pull/2059) **cyriltovena**: Recover from panic in http and grpc handlers.
  2032  * [2058](https://github.com/grafana/loki/pull/2058) **cyriltovena**: Fix a bug in range vector skipping data.
  2033  * [2055](https://github.com/grafana/loki/pull/2055) **aknuds1**: Chore: Fix spelling of per second in code
  2034  * [2046](https://github.com/grafana/loki/pull/2046) **gouthamve**: Fix bug in logql parsing that leads to crash.
  2035  * [2050](https://github.com/grafana/loki/pull/2050) **aknuds1**: Chore: Correct typo "per seconds"
  2036  * [2034](https://github.com/grafana/loki/pull/2034) **sandeepsukhani**: some metrics for measuring performance and failures in boltdb shipper
  2037  * [2031](https://github.com/grafana/loki/pull/2031) **cyriltovena**: Improve protobuf serialization
  2038  * [2030](https://github.com/grafana/loki/pull/2030) **adityacs**: Update loki to cortex master
  2039  * [2023](https://github.com/grafana/loki/pull/2023) **cyriltovena**: Support post requests in the frontend queryrange handler.
  2040  * [2021](https://github.com/grafana/loki/pull/2021) **slim-bean**: Loki: refactor validation and improve error messages
  2041  * [2019](https://github.com/grafana/loki/pull/2019) **slim-bean**: make `loki_ingester_memory_streams` Gauge per tenant.
  2042  * [2012](https://github.com/grafana/loki/pull/2012) **slim-bean**: Loki: Improve logging and add metrics to streams dropped by stream limit
  2043  * [2010](https://github.com/grafana/loki/pull/2010) **cyriltovena**: Update lz4 library to latest to ensure deterministic output.
  2044  * [2001](https://github.com/grafana/loki/pull/2001) **sandeepsukhani**: table client for boltdb shipper to enforce retention
  2045  * [1995](https://github.com/grafana/loki/pull/1995) **sandeepsukhani**: make boltdb shipper singleton and some other minor refactoring
  2046  * [1987](https://github.com/grafana/loki/pull/1987) **slim-bean**: Loki: Add a missing method to facade which is called by the metrics storage client in cortex
  2047  * [1982](https://github.com/grafana/loki/pull/1982) **cyriltovena**: Update cortex to latest.
  2048  * [1977](https://github.com/grafana/loki/pull/1977) **cyriltovena**: Ensure trace propagation in our logs.
  2049  * [1976](https://github.com/grafana/loki/pull/1976) **slim-bean**: incorporate some better defaults into table-manager configs
  2050  * [1975](https://github.com/grafana/loki/pull/1975) **slim-bean**: Update cortex vendoring to latest master
  2051  * [1970](https://github.com/grafana/loki/pull/1970) **cyriltovena**: Allow to aggregate binary operations.
  2052  * [1965](https://github.com/grafana/loki/pull/1965) **slim-bean**: Loki: Adds an `interval` paramater to query_range queries allowing a sampling of events to be returned based on the provided interval
  2053  * [1964](https://github.com/grafana/loki/pull/1964) **owen-d**: chunk bounds metric now records 8h range in 1h increments
  2054  * [1963](https://github.com/grafana/loki/pull/1963) **cyriltovena**: Improve the local config to work locally and inside docker.
  2055  * [1961](https://github.com/grafana/loki/pull/1961) **jpmcb**: [Bug] Workaround for broken etcd gomod import
  2056  * [1958](https://github.com/grafana/loki/pull/1958) **owen-d**: chunk lifespan histogram
  2057  * [1956](https://github.com/grafana/loki/pull/1956) **sandeepsukhani**: update cortex to latest master
  2058  * [1953](https://github.com/grafana/loki/pull/1953) **jpmcb**: Go mod: explicit golang.org/x/net replace
  2059  * [1950](https://github.com/grafana/loki/pull/1950) **cyriltovena**: Fixes case handling in regex simplification.
  2060  * [1949](https://github.com/grafana/loki/pull/1949) **SerialVelocity**: [Loki]: Cleanup dockerfile
  2061  * [1946](https://github.com/grafana/loki/pull/1946) **slim-bean**: Loki Update the cut block size counter when creating a memchunk from byte slice
  2062  * [1939](https://github.com/grafana/loki/pull/1939) **owen-d**: adds config validation, similar to cortex
  2063  * [1916](https://github.com/grafana/loki/pull/1916) **cyriltovena**: Add cap_net_bind_service linux capabilities to Loki.
  2064  * [1914](https://github.com/grafana/loki/pull/1914) **owen-d**: only fetches one chunk per series in /series
  2065  * [1875](https://github.com/grafana/loki/pull/1875) **owen-d**: support `match[]` encoding
  2066  * [1869](https://github.com/grafana/loki/pull/1869) **pstibrany**: Update Cortex to latest master
  2067  * [1846](https://github.com/grafana/loki/pull/1846) **owen-d**: Sharding optimizations I: AST mapping
  2068  * [1838](https://github.com/grafana/loki/pull/1838) **cyriltovena**: Move default port for Loki to 3100 everywhere.
  2069  * [1837](https://github.com/grafana/loki/pull/1837) **sandeepsukhani**: flush boltdb to object store
  2070  * [1834](https://github.com/grafana/loki/pull/1834) **Mario-Hofstaetter**: Loki/Change local storage directory to /loki/ and fix permissions (#1833)
  2071  * [1819](https://github.com/grafana/loki/pull/1819) **cyriltovena**: Adds a counter for total flushed chunks per reason.
  2072  * [1816](https://github.com/grafana/loki/pull/1816) **sdojjy**: loki can not be started with loki-local-config.yaml
  2073  * [1810](https://github.com/grafana/loki/pull/1810) **cyriltovena**: Optimize empty filter queries.
  2074  * [1809](https://github.com/grafana/loki/pull/1809) **cyriltovena**: Test stats memchunk
  2075  * [1804](https://github.com/grafana/loki/pull/1804) **pstibrany**: Convert Loki modules to services
  2076  * [1799](https://github.com/grafana/loki/pull/1799) **pstibrany**: loki: update Cortex to master
  2077  * [1798](https://github.com/grafana/loki/pull/1798) **adityacs**: Support configurable maximum of the limits parameter
  2078  * [1713](https://github.com/grafana/loki/pull/1713) **adityacs**: Log error message for invalid checksum
  2079  * [1706](https://github.com/grafana/loki/pull/1706) **cyriltovena**: Non-root user docker image for Loki.
  2080  
  2081  #### Logcli
  2082  * [2027](https://github.com/grafana/loki/pull/2027) **pstibrany**: logcli: Query needs to be stored into url.RawQuery, and not url.Path
  2083  * [2000](https://github.com/grafana/loki/pull/2000) **cyriltovena**: Improve URL building in the logcli to strip trailing /.
  2084  * [1922](https://github.com/grafana/loki/pull/1922) **bavarianbidi**: logcli: org-id/tls-skip-verify set via env var
  2085  * [1861](https://github.com/grafana/loki/pull/1861) **yeya24**: Support series API in logcli
  2086  * [1850](https://github.com/grafana/loki/pull/1850) **chrischdi**: BugFix: Fix logcli client to use OrgID in LiveTail
  2087  * [1814](https://github.com/grafana/loki/pull/1814) **cyriltovena**: Logcli remote storage.
  2088  * [1712](https://github.com/grafana/loki/pull/1712) **rfratto**: clarify logcli commands and output
  2089  
  2090  #### Promtail
  2091  * [2069](https://github.com/grafana/loki/pull/2069) **slim-bean**: Promtail: log at debug level when nothing matches the specified path for a file target
  2092  * [2066](https://github.com/grafana/loki/pull/2066) **slim-bean**: Promtail: metrics stage can also count line bytes
  2093  * [2049](https://github.com/grafana/loki/pull/2049) **adityacs**: Fix promtail client default values
  2094  * [2075](https://github.com/grafana/loki/pull/2075) **cyriltovena**: Fixes a panic in dry-run when using external labels.
  2095  * [2026](https://github.com/grafana/loki/pull/2026) **adityacs**: Targets not required in promtail config
  2096  * [2004](https://github.com/grafana/loki/pull/2004) **cyriltovena**: Adds config to disable HTTP and GRPC server in Promtail.
  2097  * [1935](https://github.com/grafana/loki/pull/1935) **cyriltovena**: Support stdin target via flag instead of automatic detection.
  2098  * [1920](https://github.com/grafana/loki/pull/1920) **alexanderGalushka**: feat: tms readiness check bypass implementation
  2099  * [1894](https://github.com/grafana/loki/pull/1894) **cyriltovena**: Fixes possible panic in json pipeline stage.
  2100  * [1865](https://github.com/grafana/loki/pull/1865) **adityacs**: Fix flaky promtail test
  2101  * [1815](https://github.com/grafana/loki/pull/1815) **adityacs**: Log error message when source does not exist in extracted values
  2102  * [1627](https://github.com/grafana/loki/pull/1627) **rfratto**: Proposal: Promtail Push API
  2103  
  2104  #### Docker Driver
  2105  * [2076](https://github.com/grafana/loki/pull/2076) **cyriltovena**: Allows to pass inlined pipeline stages to the docker driver.
  2106  * [2054](https://github.com/grafana/loki/pull/2054) **bkmit**: Docker driver: Allow to provision external pipeline files to plugin
  2107  * [1906](https://github.com/grafana/loki/pull/1906) **cyriltovena**: Add no-file and keep-file log option for docker driver.
  2108  * [1903](https://github.com/grafana/loki/pull/1903) **cyriltovena**: Log docker driver config map.
  2109  
  2110  #### Fluentd
  2111  * [2074](https://github.com/grafana/loki/pull/2074) **osela**: fluentd plugin: support placeholders in tenant field
  2112  * [2006](https://github.com/grafana/loki/pull/2006) **Skeen**: fluent-plugin-loki: Restructuring and CI
  2113  * [1909](https://github.com/grafana/loki/pull/1909) **jgehrcke**: fluentd loki plugin README: add note about labels
  2114  * [1853](https://github.com/grafana/loki/pull/1853) **wardbekker**: bump gem version
  2115  * [1811](https://github.com/grafana/loki/pull/1811) **JamesJJ**: Error handling: Show data stream at "debug" level, not "warn"
  2116  
  2117  #### Fluent Bit
  2118  * [2040](https://github.com/grafana/loki/pull/2040) **avii-ridge**: Add extraOutputs variable to support multiple outputs for fluent-bit
  2119  * [1915](https://github.com/grafana/loki/pull/1915) **DirtyCajunRice**: Fix fluent-bit metrics
  2120  * [1890](https://github.com/grafana/loki/pull/1890) **dottedmag**: fluentbit: JSON encoding: avoid base64 encoding of []byte inside other slices
  2121  * [1791](https://github.com/grafana/loki/pull/1791) **cyriltovena**: Improve fluentbit logfmt.
  2122  
  2123  #### Ksonnet
  2124  * [1980](https://github.com/grafana/loki/pull/1980) **cyriltovena**: Log slow query from the frontend by default in ksonnet.
  2125  
  2126  ##### Mixins
  2127  * [2080](https://github.com/grafana/loki/pull/2080) **beorn7**: mixin: Accept suffixes to pod name in instance labels
  2128  * [2044](https://github.com/grafana/loki/pull/2044) **slim-bean**: Dashboards: fixes the cpu usage graphs
  2129  * [2043](https://github.com/grafana/loki/pull/2043) **joe-elliott**: Swapped to container restarts over terminated reasons
  2130  * [2041](https://github.com/grafana/loki/pull/2041) **slim-bean**: Dashboard: Loki Operational improvements
  2131  * [1934](https://github.com/grafana/loki/pull/1934) **tomwilkie**: Put loki-mixin and promtail-mixin dashboards in a folder.
  2132  * [1913](https://github.com/grafana/loki/pull/1913) **tomwilkie**: s/dashboards/grafanaDashboards.
  2133  
  2134  #### Helm
  2135  * [2038](https://github.com/grafana/loki/pull/2038) **oke-py**: Docs: update Loki Helm Chart document to support Helm 3
  2136  * [2015](https://github.com/grafana/loki/pull/2015) **etashsingh**: Change image tag from 1.4.1 to 1.4.0 in Helm chart
  2137  * [1981](https://github.com/grafana/loki/pull/1981) **sshah90**: added extraCommandlineArgs in values file
  2138  * [1967](https://github.com/grafana/loki/pull/1967) **rdxmb**: helm chart: add missing line feed
  2139  * [1898](https://github.com/grafana/loki/pull/1898) **stefanandres**: [helm loki/promtail] make UpdateStrategy configurable
  2140  * [1871](https://github.com/grafana/loki/pull/1871) **stefanandres**: [helm loki/promtail] Add systemd-journald example with extraMount, extraVolumeMount
  2141  * [1864](https://github.com/grafana/loki/pull/1864) **cyriltovena**: Sign helm package with GPG.
  2142  * [1825](https://github.com/grafana/loki/pull/1825) **polar3130**: Helm/loki-stack: refresh default grafana.image.tag to 6.7.0
  2143  * [1817](https://github.com/grafana/loki/pull/1817) **bclermont**: Helm chart: Prevent prometheus to scrape both services
  2144  
  2145  #### Loki Canary
  2146  * [1891](https://github.com/grafana/loki/pull/1891) **joe-elliott**: Addition of a `/suspend` endpoint to Loki Canary
  2147  
  2148  #### Docs
  2149  * [2056](https://github.com/grafana/loki/pull/2056) **cyriltovena**: Update api.md
  2150  * [2014](https://github.com/grafana/loki/pull/2014) **jsoref**: Spelling
  2151  * [1999](https://github.com/grafana/loki/pull/1999) **oddlittlebird**: Docs: Added labels content
  2152  * [1974](https://github.com/grafana/loki/pull/1974) **rfratto**: fix stores for chunk and index in documentation for period_config
  2153  * [1966](https://github.com/grafana/loki/pull/1966) **oddlittlebird**: Docs: Update docker.md
  2154  * [1951](https://github.com/grafana/loki/pull/1951) **cstyan**: Move build from source instructions to root readme.
  2155  * [1945](https://github.com/grafana/loki/pull/1945) **FlorianLudwig**: docs: version pin the docker image in docker-compose
  2156  * [1925](https://github.com/grafana/loki/pull/1925) **wardbekker**: Clarified that the api push path needs to be specified.
  2157  * [1905](https://github.com/grafana/loki/pull/1905) **sshah90**: updating typo for end time parameter in api docs
  2158  * [1888](https://github.com/grafana/loki/pull/1888) **slim-bean**: docs: cleaning up the comments for the cache_config, default_validity option
  2159  * [1887](https://github.com/grafana/loki/pull/1887) **slim-bean**: docs: Adding a config change in release 1.4 upgrade doc, updating readme with new doc links
  2160  * [1881](https://github.com/grafana/loki/pull/1881) **cyriltovena**: Add precision about the range notation for LogQL.
  2161  * [1879](https://github.com/grafana/loki/pull/1879) **slim-bean**: docs: update promtail docs for backoff
  2162  * [1873](https://github.com/grafana/loki/pull/1873) **owen-d**: documents frontend worker
  2163  * [1870](https://github.com/grafana/loki/pull/1870) **ushuz**: Docs: Keep plugin install command example in one line
  2164  * [1856](https://github.com/grafana/loki/pull/1856) **slim-bean**: docs: tweak the doc section of the readme a little
  2165  * [1852](https://github.com/grafana/loki/pull/1852) **slim-bean**: docs: clean up schema recommendations
  2166  * [1843](https://github.com/grafana/loki/pull/1843) **vishesh92**: Docs: Update configuration docs for redis
  2167  
  2168  #### Build
  2169  * [2042](https://github.com/grafana/loki/pull/2042) **rfratto**: Fix drone
  2170  * [2009](https://github.com/grafana/loki/pull/2009) **cyriltovena**: Adds :delegated flags to speed up build experience on MacOS.
  2171  * [1942](https://github.com/grafana/loki/pull/1942) **owen-d**: delete tag script filters by prefix instead of substring
  2172  * [1918](https://github.com/grafana/loki/pull/1918) **slim-bean**: build: This Dockerfile is a remnant from a long time ago, not needed.
  2173  * [1911](https://github.com/grafana/loki/pull/1911) **slim-bean**: build: push images for `k` branches
  2174  * [1849](https://github.com/grafana/loki/pull/1849) **cyriltovena**: Pin helm version in circle-ci helm testing workflow.
  2175  
  2176  
  2177  ## 1.4.1 (2020-04-06)
  2178  
  2179  We realized after the release last week that piping data into promtail was not working on Linux or Windows, this should fix this issue for both platforms:
  2180  
  2181  * [1893](https://github.com/grafana/loki/pull/1893) **cyriltovena**: Removes file size check for pipe, not provided by linux.
  2182  
  2183  Also thanks to @dottedmag for providing this fix for Fluent Bit!
  2184  
  2185  * [1890](https://github.com/grafana/loki/pull/1890) **dottedmag**: fluentbit: JSON encoding: avoid base64 encoding of []byte inside other slices
  2186  
  2187  ## 1.4.0 (2020-04-01)
  2188  
  2189  Over 130 PR's merged for this release, from 40 different contributors!!  We continue to be humbled and thankful for the growing community of contributors and users of Loki.  Thank you all so much.
  2190  
  2191  ### Important Notes
  2192  
  2193  **Really, this is important**
  2194  
  2195  Before we get into new features, version 1.4.0 brings with it the first (that we are aware of) upgrade dependency.
  2196  
  2197  We have created a dedicated page for upgrading Loki in the [operations section of the docs](https://github.com/grafana/loki/blob/master/docs/sources/operations/upgrade.md#140)
  2198  
  2199  The docker image tag naming was changed, the starting in 1.4.0 docker images no longer have the `v` prefix: `grafana/loki:1.4.0`
  2200  
  2201  Also you should be aware we are now pruning old `master-xxxxx` docker images from docker hub, currently anything older than 90 days is removed.  **We will never remove released versions of Loki**
  2202  
  2203  ### Notable Features
  2204  
  2205  * [1661](https://github.com/grafana/loki/pull/1661) **cyriltovena**: Frontend & Querier query statistics instrumentation.
  2206  
  2207  The API now returns a plethora of stats into the work Loki performed to execute your query, eventually this will be displayed in some form in Grafana to help users better understand how "expensive" their queries are.  Our goal here initially was to better instrument the recent work done in v1.3.0 on query parallelization and to better understand the performance of each part of Loki.  In the future we are looking at additional ideas to provide feedback to users to tailor their queries for better performance.
  2208  
  2209  * [1652](https://github.com/grafana/loki/pull/1652) **cyriltovena**: --dry-run Promtail.
  2210  * [1649](https://github.com/grafana/loki/pull/1649) **cyriltovena**: Pipe data to Promtail
  2211  
  2212  This is a long overdue addition to Promtail which can help setup and debug pipelines, with these new features you can do this to feed a single log line into Promtail:
  2213  
  2214  ```bash
  2215  echo -n 'level=debug msg="test log (200)"' | cmd/promtail/promtail -config.file=cmd/promtail/promtail-local-config.yaml --dry-run -log.level=debug 2>&1 | sed 's/^.*stage/stage/g'
  2216  ```
  2217  
  2218  `-log.level=debug 2>&1 | sed 's/^.*stage/stage/g` are added to enable debug output, direct the output to stdout, and a sed filter to remove some noise from the log lines.
  2219  
  2220  The `stdin` functionality also works without `--dry-run` allowing you to feed any logs into Promtail via `stdin` and send them to Loki
  2221  
  2222  * [1677](https://github.com/grafana/loki/pull/1677) **owen-d**: Literal Expressions in LogQL
  2223  * [1662](https://github.com/grafana/loki/pull/1662) **owen-d**: Binary operators in LogQL
  2224  
  2225  These two extensions to LogQL now let you execute queries like this:
  2226  
  2227      * `sum(rate({app="foo"}[5m])) * 2`
  2228      * `sum(rate({app="foo"}[5m]))/1e6`
  2229  
  2230  * [1678](https://github.com/grafana/loki/pull/1678) **slim-bean**: promtail: metrics pipeline count all log lines
  2231  
  2232  Now you can get per-stream line counts as a metric from promtail, useful for seeing which applications log the most
  2233  
  2234  ```yaml
  2235  - metrics:
  2236      line_count_total:
  2237        config:
  2238          action: inc
  2239          match_all: true
  2240        description: A running counter of all lines with their corresponding
  2241          labels
  2242        type: Counter
  2243  ```
  2244  
  2245  * [1558](https://github.com/grafana/loki/pull/1558) **owen-d**: ingester.max-chunk-age
  2246  * [1572](https://github.com/grafana/loki/pull/1572) **owen-d**: Feature/query ingesters within
  2247  
  2248  These two configs let you set the max time a chunk can stay in memory in Loki, this is useful to keep memory usage down as well as limit potential loss of data if ingesters crash.  Combine this with the `query_ingesters_within` config and you can have your queriers skip asking the ingesters for data which you know won't still be in memory (older than max_chunk_age).
  2249  
  2250  **NOTE** Do not set the `max_chunk_age` too small, the default of 1h is probably a good point for most people.  Loki does not perform well when you flush many small chunks (such as when your logs have too much cardinality), setting this lower than 1h risks flushing too many small chunks.
  2251  
  2252  * [1581](https://github.com/grafana/loki/pull/1581) **slim-bean**: Add sleep to canary reconnect on error
  2253  
  2254  This isn't a feature but it's an important fix, this is the second time our canaries have tried to DDOS our Loki clusters so you should update to prevent them from trying to attack you.  Aggressive little things these canaries...
  2255  
  2256  * [1840](https://github.com/grafana/loki/pull/1840) **slim-bean**: promtail: Retry 429 rate limit errors from Loki, increase default retry limits
  2257  * [1845](https://github.com/grafana/loki/pull/1845) **wardbekker**: throw exceptions on HTTPTooManyRequests and HTTPServerError so Fluentd will retry
  2258  
  2259  These two PR's change how 429 HTTP Response codes are handled (Rate Limiting), previously these responses were dropped, now they will be retried for these clients
  2260  
  2261      * Promtail
  2262      * Docker logging driver
  2263      * Fluent Bit
  2264      * Fluentd
  2265  
  2266  This pushes the failure to send logs to two places. First is the retry limits. The defaults in promtail (and thus also the Docker logging driver and Fluent Bit, which share the same underlying code) will retry 429s (and 500s) on an exponential backoff for up to about 8.5 mins on the default configurations. (This can be changed; see the [config docs](https://github.com/grafana/loki/blob/v1.4.0/docs/clients/promtail/configuration.md#client_config) for more info.)
  2267  
  2268  The second place would be the log file itself. At some point, most log files roll based on size or time. Promtail makes an attempt to read a rolled log file but will only try once. If you are very sensitive to lost logs, give yourself really big log files with size-based rolling rules and increase those retry timeouts. This should protect you from Loki server outages or network issues.
  2269  
  2270  ### All Changes
  2271  
  2272  There are many other important fixes and improvements to Loki, way too many to call out in individual detail, so take a look!
  2273  
  2274  #### Loki
  2275  * [1810](https://github.com/grafana/loki/pull/1810) **cyriltovena**: Optimize empty filter queries.
  2276  * [1809](https://github.com/grafana/loki/pull/1809) **cyriltovena**: Test stats memchunk
  2277  * [1807](https://github.com/grafana/loki/pull/1807) **pracucci**: Enable global limits by default in production mixin
  2278  * [1802](https://github.com/grafana/loki/pull/1802) **cyriltovena**: Add a test for duplicates count in the heap iterator and fixes it.
  2279  * [1799](https://github.com/grafana/loki/pull/1799) **pstibrany**: loki: update Cortex to master
  2280  * [1797](https://github.com/grafana/loki/pull/1797) **cyriltovena**: Use ingester client GRPC call options from config.
  2281  * [1794](https://github.com/grafana/loki/pull/1794) **pstibrany**: loki: Convert module names to string
  2282  * [1793](https://github.com/grafana/loki/pull/1793) **johncming**: pkg/chunkenc: fix leak of pool.
  2283  * [1789](https://github.com/grafana/loki/pull/1789) **adityacs**: Fix loki exit on jaeger agent not being present
  2284  * [1787](https://github.com/grafana/loki/pull/1787) **cyriltovena**: Regexp simplification
  2285  * [1785](https://github.com/grafana/loki/pull/1785) **pstibrany**: Update Cortex to master
  2286  * [1758](https://github.com/grafana/loki/pull/1758) **cyriltovena**: Query range should not support date where start == end.
  2287  * [1750](https://github.com/grafana/loki/pull/1750) **talham7391**: Clearer error response from push endpoint when labels are malformed
  2288  * [1746](https://github.com/grafana/loki/pull/1746) **cyriltovena**: Update cortex vendoring to include frontend status code improvement.
  2289  * [1745](https://github.com/grafana/loki/pull/1745) **cyriltovena**: Refactor querier http error handling.
  2290  * [1736](https://github.com/grafana/loki/pull/1736) **adityacs**: Add /ready endpoint to table-manager
  2291  * [1733](https://github.com/grafana/loki/pull/1733) **cyriltovena**: This logs queries with latency tag when  recording stats.
  2292  * [1730](https://github.com/grafana/loki/pull/1730) **adityacs**: Fix nil pointer dereference in ingester client
  2293  * [1719](https://github.com/grafana/loki/pull/1719) **cyriltovena**: Expose QueryType function.
  2294  * [1718](https://github.com/grafana/loki/pull/1718) **cyriltovena**: Better logql metric status code.
  2295  * [1708](https://github.com/grafana/loki/pull/1708) **cyriltovena**: Increase discarded samples when line is too long.
  2296  * [1704](https://github.com/grafana/loki/pull/1704) **owen-d**: api support for scalars
  2297  * [1686](https://github.com/grafana/loki/pull/1686) **owen-d**: max line lengths (component + tenant overrides)
  2298  * [1684](https://github.com/grafana/loki/pull/1684) **cyriltovena**: Ensure status codes are set correctly in the frontend.
  2299  * [1677](https://github.com/grafana/loki/pull/1677) **owen-d**: Literal Expressions in LogQL
  2300  * [1662](https://github.com/grafana/loki/pull/1662) **owen-d**: Binary operators in LogQL
  2301  * [1661](https://github.com/grafana/loki/pull/1661) **cyriltovena**: Frontend & Querier query statistics instrumentation.
  2302  * [1651](https://github.com/grafana/loki/pull/1651) **owen-d**: removes duplicate logRangeExprExt grammar
  2303  * [1636](https://github.com/grafana/loki/pull/1636) **cyriltovena**: Fixes stats summary computation.
  2304  * [1630](https://github.com/grafana/loki/pull/1630) **owen-d**: adds stringer methods for all ast expr types
  2305  * [1626](https://github.com/grafana/loki/pull/1626) **owen-d**: compiler guarantees for logql exprs
  2306  * [1616](https://github.com/grafana/loki/pull/1616) **owen-d**: cache key cant be reused when an interval changes
  2307  * [1615](https://github.com/grafana/loki/pull/1615) **cyriltovena**: Add statistics to query_range and instant_query API.
  2308  * [1612](https://github.com/grafana/loki/pull/1612) **owen-d**: bumps cortex to 0.6.1 master
  2309  * [1605](https://github.com/grafana/loki/pull/1605) **owen-d**: Decouple logql engine/AST from execution context
  2310  * [1582](https://github.com/grafana/loki/pull/1582) **slim-bean**: Change new stats names
  2311  * [1579](https://github.com/grafana/loki/pull/1579) **rfratto**: Disable transfers in loki-local-config.yaml
  2312  * [1572](https://github.com/grafana/loki/pull/1572) **owen-d**: Feature/query ingesters within
  2313  * [1677](https://github.com/grafana/loki/pull/1677) **owen-d**: Introduces numeric literals in LogQL
  2314  * [1569](https://github.com/grafana/loki/pull/1569) **owen-d**: refactors splitby to not require buffered channels
  2315  * [1567](https://github.com/grafana/loki/pull/1567) **owen-d**: adds span metadata for split queries
  2316  * [1565](https://github.com/grafana/loki/pull/1565) **owen-d**: Feature/per tenant splitby
  2317  * [1562](https://github.com/grafana/loki/pull/1562) **sandeepsukhani**: limit for concurrent tail requests
  2318  * [1558](https://github.com/grafana/loki/pull/1558) **owen-d**: ingester.max-chunk-age
  2319  * [1484](https://github.com/grafana/loki/pull/1484) **pstibrany**: loki: use new runtimeconfig package from Cortex
  2320  
  2321  #### Promtail
  2322  * [1840](https://github.com/grafana/loki/pull/1840) **slim-bean**: promtail: Retry 429 rate limit errors from Loki, increase default retry limits
  2323  * [1775](https://github.com/grafana/loki/pull/1775) **slim-bean**: promtail: remove the read lines counter when the log file stops being tailed
  2324  * [1770](https://github.com/grafana/loki/pull/1770) **adityacs**: Fix single job with multiple service discovery elements
  2325  * [1765](https://github.com/grafana/loki/pull/1765) **adityacs**: Fix error in templating when extracted key has nil value
  2326  * [1743](https://github.com/grafana/loki/pull/1743) **dtennander**: Promtail: Ignore dropped entries in subsequent metric-stages in pipelines.
  2327  * [1687](https://github.com/grafana/loki/pull/1687) **adityacs**: Fix panic in labels debug message
  2328  * [1683](https://github.com/grafana/loki/pull/1683) **slim-bean**: promtail: auto-prune stale metrics
  2329  * [1678](https://github.com/grafana/loki/pull/1678) **slim-bean**: promtail: metrics pipeline count all log lines
  2330  * [1666](https://github.com/grafana/loki/pull/1666) **adityacs**: Support entire extracted value map in template pipeline stage
  2331  * [1664](https://github.com/grafana/loki/pull/1664) **adityacs**: Support custom prefix name in metrics stage
  2332  * [1660](https://github.com/grafana/loki/pull/1660) **rfratto**: pkg/promtail/positions: handle empty positions file
  2333  * [1652](https://github.com/grafana/loki/pull/1652) **cyriltovena**: --dry-run Promtail.
  2334  * [1649](https://github.com/grafana/loki/pull/1649) **cyriltovena**: Pipe data to Promtail
  2335  * [1602](https://github.com/grafana/loki/pull/1602) **slim-bean**: Improve promtail configuration docs
  2336  
  2337  #### Helm
  2338  * [1731](https://github.com/grafana/loki/pull/1731) **billimek**: [promtail helm chart] - Expand promtail syslog svc to support values
  2339  * [1688](https://github.com/grafana/loki/pull/1688) **fredgate**: Loki stack helm chart can deploy datasources without Grafana
  2340  * [1632](https://github.com/grafana/loki/pull/1632) **lukipro**: Added support for imagePullSecrets in Loki Helm chart
  2341  * [1620](https://github.com/grafana/loki/pull/1620) **rsteneteg**: [promtail helm chart] option to set fs.inotify.max_user_instances with init container
  2342  * [1617](https://github.com/grafana/loki/pull/1617) **billimek**: [promtail helm chart] Enable support for syslog service
  2343  * [1590](https://github.com/grafana/loki/pull/1590) **polar3130**: Helm/loki-stack: refresh default grafana.image.tag to 6.6.0
  2344  * [1587](https://github.com/grafana/loki/pull/1587) **polar3130**: Helm/loki-stack: add template for the service name to connect to loki
  2345  * [1585](https://github.com/grafana/loki/pull/1585) **monotek**: [loki helm chart] added ingress
  2346  * [1553](https://github.com/grafana/loki/pull/1553) **got-root**: helm: Allow setting 'loadBalancerSourceRanges' for the loki service
  2347  * [1529](https://github.com/grafana/loki/pull/1529) **tourea**: Promtail Helm Chart: Add support for passing environment variables
  2348  
  2349  #### Jsonnet
  2350  * [1776](https://github.com/grafana/loki/pull/1776) **Eraac**: fix typo: Not a binary operator: =
  2351  * [1767](https://github.com/grafana/loki/pull/1767) **joe-elliott**: Dashboard Cleanup
  2352  * [1766](https://github.com/grafana/loki/pull/1766) **joe-elliott**: Move dashboards out into their own json files
  2353  * [1757](https://github.com/grafana/loki/pull/1757) **slim-bean**: promtail-mixin: Allow choosing promtail name
  2354  * [1756](https://github.com/grafana/loki/pull/1756) **sh0rez**: fix(ksonnet): named parameters for containerPort
  2355  * [1749](https://github.com/grafana/loki/pull/1749) **slim-bean**: Increasing the threshold for a file lag and reducing the severity to warning
  2356  * [1748](https://github.com/grafana/loki/pull/1748) **slim-bean**: jsonnet: Breakout promtail mixin.
  2357  * [1739](https://github.com/grafana/loki/pull/1739) **cyriltovena**: Fixes frontend args in libsonnet.
  2358  * [1735](https://github.com/grafana/loki/pull/1735) **cyriltovena**: Allow to configure global limits via the jsonnet deployment.
  2359  * [1705](https://github.com/grafana/loki/pull/1705) **cyriltovena**: Add overrides file for our jsonnet library.
  2360  * [1699](https://github.com/grafana/loki/pull/1699) **pracucci**: Increased production distributors memory request and limit
  2361  * [1689](https://github.com/grafana/loki/pull/1689) **shokada**: Add headers for WebSocket
  2362  * [1665](https://github.com/grafana/loki/pull/1665) **cyriltovena**: Query frontend service should be headless.
  2363  * [1613](https://github.com/grafana/loki/pull/1613) **cyriltovena**: Fixes config change in the result cache
  2364  
  2365  #### Fluent Bit
  2366  * [1791](https://github.com/grafana/loki/pull/1791) **cyriltovena**: Improve fluentbit logfmt.
  2367  * [1717](https://github.com/grafana/loki/pull/1717) **adityacs**: Fluent-bit: Fix panic error when AutoKubernetesLabels is true
  2368  
  2369  #### Fluentd
  2370  * [1811](https://github.com/grafana/loki/pull/1811) **JamesJJ**: Error handling: Show data stream at "debug" level, not "warn"
  2371  * [1728](https://github.com/grafana/loki/pull/1728) **irake99**: docs: fix outdated link to fluentd
  2372  * [1703](https://github.com/grafana/loki/pull/1703) **Skeen**:  fluent-plugin-grafana-loki: Update fluentd base image to current images (edge)
  2373  * [1656](https://github.com/grafana/loki/pull/1656) **takanabe**: Convert second(Integer class) to nanosecond precision
  2374  * [1646](https://github.com/grafana/loki/pull/1646) **takanabe**: Fix rubocop violation for fluentd/fluent-plugin-loki
  2375  * [1603](https://github.com/grafana/loki/pull/1603) **tarokkk**: fluentd-plugin: add URI validation
  2376  
  2377  #### Docs
  2378  * [1781](https://github.com/grafana/loki/pull/1781) **candlerb**: Docs: Recommended schema is now v11
  2379  * [1771](https://github.com/grafana/loki/pull/1771) **rfratto**: change slack url to slack.grafana.com and use https
  2380  * [1738](https://github.com/grafana/loki/pull/1738) **jgehrcke**: docs: observability.md: clarify lines vs. entries
  2381  * [1707](https://github.com/grafana/loki/pull/1707) **dangoodman**: Fix regex in pipeline-example.yml
  2382  * [1697](https://github.com/grafana/loki/pull/1697) **oke-py**: fix promtail/templates/NOTES.txt to show correctly port-forward command
  2383  * [1675](https://github.com/grafana/loki/pull/1675) **owen-d**: maintainer links & usernames
  2384  * [1673](https://github.com/grafana/loki/pull/1673) **cyriltovena**: Add Owen to the maintainer team.
  2385  * [1671](https://github.com/grafana/loki/pull/1671) **shokada**: Update tanka.md so that promtail.yml is the correct format
  2386  * [1648](https://github.com/grafana/loki/pull/1648) **ShotaKitazawa**: loki-canary: fix indent of DaemonSet manifest written in .md file
  2387  * [1642](https://github.com/grafana/loki/pull/1642) **slim-bean**: Improve systemd field docs
  2388  * [1641](https://github.com/grafana/loki/pull/1641) **pastatopf**: Correct syntax of rate example
  2389  * [1634](https://github.com/grafana/loki/pull/1634) **takanabe**: Unite docs for fluentd plugin
  2390  * [1619](https://github.com/grafana/loki/pull/1619) **shaikatz**: PeriodConfig documentation fix dynamodb -> aws-dynamo
  2391  * [1611](https://github.com/grafana/loki/pull/1611) **owen-d**: loki frontend docs additions
  2392  * [1609](https://github.com/grafana/loki/pull/1609) **Lusitaniae**: Fix wget syntax in documentation
  2393  * [1608](https://github.com/grafana/loki/pull/1608) **PabloCastellano**: Documentation: Recommend using the latest schema version (v11)
  2394  * [1601](https://github.com/grafana/loki/pull/1601) **rfratto**: Clarify regex escaping rules
  2395  * [1598](https://github.com/grafana/loki/pull/1598) **cyriltovena**: Update tanka.md doc.
  2396  * [1586](https://github.com/grafana/loki/pull/1586) **MrSaints**: Fix typo in changelog for 1.3.0
  2397  * [1504](https://github.com/grafana/loki/pull/1504) **hsraju**: Updated configuration.md
  2398  
  2399  #### Logcli
  2400  * [1808](https://github.com/grafana/loki/pull/1808) **slim-bean**: logcli: log the full stats and send to stderr instead of stdout
  2401  * [1682](https://github.com/grafana/loki/pull/1682) **adityacs**: BugFix: Fix logcli --quiet parameter parsing issue
  2402  * [1644](https://github.com/grafana/loki/pull/1644) **cyriltovena**: This improves the log output for statistics in the logcli.
  2403  * [1638](https://github.com/grafana/loki/pull/1638) **owen-d**: adds query stats and org id options in logcli
  2404  * [1573](https://github.com/grafana/loki/pull/1573) **cyriltovena**: Improve logql query statistics collection.
  2405  
  2406  #### Loki Canary
  2407  * [1653](https://github.com/grafana/loki/pull/1653) **slim-bean**: Canary needs its logo
  2408  * [1581](https://github.com/grafana/loki/pull/1581) **slim-bean**: Add sleep to canary reconnect on error
  2409  
  2410  #### Build
  2411  * [1780](https://github.com/grafana/loki/pull/1780) **slim-bean**: build: Update the CD deploy task name
  2412  * [1762](https://github.com/grafana/loki/pull/1762) **dgzlopes**: Bump testify to 1.5.1
  2413  * [1742](https://github.com/grafana/loki/pull/1742) **slim-bean**: build: fix deploy on tagged build
  2414  * [1741](https://github.com/grafana/loki/pull/1741) **slim-bean**: add darwin and freebsd binaries to release output
  2415  * [1740](https://github.com/grafana/loki/pull/1740) **rfratto**: Fix 32-bit Promtail ARM docker builds from Drone
  2416  * [1710](https://github.com/grafana/loki/pull/1710) **adityacs**: Add goimport local-prefixes configuration to .golangci.yml
  2417  * [1647](https://github.com/grafana/loki/pull/1647) **mattmendick**: Attempting to add `informational` only feedback for codecov
  2418  * [1640](https://github.com/grafana/loki/pull/1640) **rfratto**: ci: print error messages when an API request fails
  2419  * [1639](https://github.com/grafana/loki/pull/1639) **rfratto**: ci: prune docker tags prefixed with "master-" older than 90 days
  2420  * [1637](https://github.com/grafana/loki/pull/1637) **rfratto**: ci: pin plugins/manifest image tag
  2421  * [1633](https://github.com/grafana/loki/pull/1633) **rfratto**: ci: make manifest publishing run in serial
  2422  * [1629](https://github.com/grafana/loki/pull/1629) **slim-bean**: Ignore markdown files in codecoverage
  2423  * [1628](https://github.com/grafana/loki/pull/1628) **rfratto**: Exempt proposals from stale bot
  2424  * [1614](https://github.com/grafana/loki/pull/1614) **mattmendick**: Codecov: Update config to add informational flag
  2425  * [1600](https://github.com/grafana/loki/pull/1600) **mattmendick**: Codecov circleci test [WIP]
  2426  
  2427  #### Tooling
  2428  * [1577](https://github.com/grafana/loki/pull/1577) **pstibrany**: Move chunks-inspect tool to Loki repo
  2429  
  2430  ## 1.3.0 (2020-01-16)
  2431  
  2432  ### What's New?? ###
  2433  
  2434  With 1.3.0 we are excited to announce several improvements focusing on performance!
  2435  
  2436  First and most significant is the Query Frontend:
  2437  
  2438  * [1442](https://github.com/grafana/loki/pull/1442) **cyriltovena**: Loki Query Frontend
  2439  
  2440  The query frontend allows for sharding queries by time and dispatching them in parallel to multiple queriers, giving true horizontal scaling ability for queries.  Take a look at the [jsonnet changes](https://github.com/grafana/loki/pull/1442/files?file-filters%5B%5D=.libsonnet) to see how we are deploying this in our production setup.  Keep an eye out for a blog post with more information on how the frontend works and more information on this exciting new feature.
  2441  
  2442  In our quest to improve query performance, we discovered that gzip, while good for compression ratio, is not the best for speed.  So we introduced the ability to select from several different compression algorithms:
  2443  
  2444  * [1411](https://github.com/grafana/loki/pull/1411) **cyriltovena**: Adds configurable compression algorithms for chunks
  2445  
  2446  We are currently testing out LZ4 and snappy, LZ4 seemed like a good fit however we found that it didn't always compress the same data to the same output which was causing some troubles for another important improvement:
  2447  
  2448  * [1438](https://github.com/grafana/loki/pull/1438) **pstibrany**: pkg/ingester: added sync period flags
  2449  
  2450  Extending on the work done by @bboreham on Cortex, @pstibrany added a few new flags and code to synchronize chunks between ingesters, which reduces the number of chunks persisted to object stores and therefore also reduces the number of chunks loaded on queries and the amount of de-duplication work which needs to be done.
  2451  
  2452  As mentioned above, LZ4 was in some cases compressing the same data with a different result which was interfering with this change, we are still investigating the cause of this issue (It may be in how we implemented something, or may be in the compression code itself).  For now we have switched to snappy which has seen a reduction in data written to the object store from almost 3x the source data (with a replication factor of 3) to about 1.5x, saving a lot of duplicated log storage!
  2453  
  2454  Another valuable change related to chunks:
  2455  
  2456  * [1406](https://github.com/grafana/loki/pull/1406) **slim-bean**: allow configuring a target chunk size in compressed bytes
  2457  
  2458  With this change you can set a `chunk_target_size` and Loki will attempt to fill a chunk to approx that size before flushing (previously a chunk size was a hard coded 10 blocks where the default block size is 262144 bytes).  Larger chunks are beneficial for a few reasons, mainly on reducing API calls to your object store when performing queries, but also in reducing overhead in a few places, especially when processing very high volume log streams.
  2459  
  2460  Another big improvement is the introduction of accurate rate limiting when running microservices:
  2461  
  2462  * [1486](https://github.com/grafana/loki/pull/1486) **pracucci**: Add ingestion rate global limit support
  2463  
  2464  Previously the rate limit was applied at each distributor, however with traffic split over many distributors the limit would need to be adjusted accordingly.  This meant that scaling up distributors required changing the limit.  Now this information is communicated between distributors such that the limit should be applied accurately regardless of the number of distributors.
  2465  
  2466  And last but not least on the notable changes list is a new feature for Promtail:
  2467  
  2468  * [1275](https://github.com/grafana/loki/pull/1275) **bastjan**: pkg/promtail: IETF Syslog (RFC5424) Support
  2469  
  2470  With this change Promtail can receive syslogs via TCP!  Thanks to @bastjan for all the hard work on this submission!
  2471  
  2472  ### Important things to note:
  2473  
  2474  * [1519](https://github.com/grafana/loki/pull/1519) Changes a core behavior in Loki regarding logs with duplicate content AND duplicate timestamps, previously Loki would store logs with duplicate timestamps and content, moving forward logs with duplicate content AND timestamps will be silently ignored.  Mainly this change is to prevent duplicates that appear when a batch is retried (the first entry in the list would be inserted again, now it will be ignored).  Logs with the same timestamp and different content will still be accepted.
  2475  * [1486](https://github.com/grafana/loki/pull/1486) Deprecated `-distributor.limiter-reload-period` flag / distributor's `limiter_reload_period` config option.
  2476  
  2477  ### All Changes
  2478  
  2479  Once again we can't thank our community and contributors enough for the significant work that everyone is adding to Loki, the entire list of changes is long!!
  2480  
  2481  #### Loki
  2482  * [1526](https://github.com/grafana/loki/pull/1526) **codesome**: Support <selector> <range> <filters> for aggregation
  2483  * [1522](https://github.com/grafana/loki/pull/1522) **cyriltovena**: Adds support for the old query string regexp in the frontend.
  2484  * [1519](https://github.com/grafana/loki/pull/1519) **rfratto**: pkg/chunkenc: ignore duplicate lines pushed to a stream
  2485  * [1511](https://github.com/grafana/loki/pull/1511) **sandlis**: querier: fix panic in tailer when max tail duration exceeds
  2486  * [1499](https://github.com/grafana/loki/pull/1499) **slim-bean**: Fix a panic in chunk prefetch
  2487  * [1495](https://github.com/grafana/loki/pull/1495) **slim-bean**: Prefetch chunks while processing
  2488  * [1496](https://github.com/grafana/loki/pull/1496) **cyriltovena**: Add duplicates info and remove timing informations.
  2489  * [1490](https://github.com/grafana/loki/pull/1490) **owen-d**: Fix/deadlock frontend queue
  2490  * [1489](https://github.com/grafana/loki/pull/1489) **owen-d**: unifies reverse iterators
  2491  * [1488](https://github.com/grafana/loki/pull/1488) **cyriltovena**: Fixes response json encoding and add regression tests.
  2492  * [1486](https://github.com/grafana/loki/pull/1486) **pracucci**: Add ingestion rate global limit support* [1493](https://github.com/grafana/loki/pull/1493) **pracucci**: Added max streams per user global limit
  2493  * [1480](https://github.com/grafana/loki/pull/1480) **cyriltovena**: Close iterator properly and check nil before releasing buffers.
  2494  * [1473](https://github.com/grafana/loki/pull/1473) **rfratto**: pkg/querier: don't query all ingesters
  2495  * [1470](https://github.com/grafana/loki/pull/1470) **cyriltovena**: Validates limit parameter.
  2496  * [1448](https://github.com/grafana/loki/pull/1448) **cyriltovena**: Improving storage benchmark
  2497  * [1445](https://github.com/grafana/loki/pull/1445) **cyriltovena**: Add decompression tracing instrumentation.
  2498  * [1442](https://github.com/grafana/loki/pull/1442) **cyriltovena**: Loki Query Frontend
  2499  * [1438](https://github.com/grafana/loki/pull/1438) **pstibrany**: pkg/ingester: added sync period flags
  2500  * [1433](https://github.com/grafana/loki/pull/1433) **zendern**: Using strict parsing for yaml configs
  2501  * [1425](https://github.com/grafana/loki/pull/1425) **pstibrany**: pkg/ingester: Added possibility to disable transfers.
  2502  * [1423](https://github.com/grafana/loki/pull/1423) **pstibrany**: pkg/chunkenc: Fix BenchmarkRead to focus on reading chunks, not converting bytes to string
  2503  * [1421](https://github.com/grafana/loki/pull/1421) **pstibrany**: pkg/chunkenc: change default LZ4 buffer size to 64k.
  2504  * [1420](https://github.com/grafana/loki/pull/1420) **cyriltovena**: Sets the chunk encoding correctly when creating chunk from bytes.
  2505  * [1419](https://github.com/grafana/loki/pull/1419) **owen-d**: Enables Series API in loki
  2506  * [1413](https://github.com/grafana/loki/pull/1413) **pstibrany**: RangeQuery benchmark optimizations
  2507  * [1411](https://github.com/grafana/loki/pull/1411) **cyriltovena**: Adds configurable compression algorithms for chunks
  2508  * [1409](https://github.com/grafana/loki/pull/1409) **slim-bean**: change the chunk size histogram to allow for bigger buckets
  2509  * [1408](https://github.com/grafana/loki/pull/1408) **slim-bean**: forgot to register the new metric for counting blocks per chunk
  2510  * [1406](https://github.com/grafana/loki/pull/1406) **slim-bean**: allow configuring a target chunk size in compressed bytes
  2511  * [1405](https://github.com/grafana/loki/pull/1405) **pstibrany**: Convert string to bytes once only when doing string filtering.
  2512  * [1396](https://github.com/grafana/loki/pull/1396) **pstibrany**: pkg/cfg: print help only when requested, and print it on stdout
  2513  * [1383](https://github.com/grafana/loki/pull/1383) **beornf**: Read websocket close in tail handler
  2514  * [1071](https://github.com/grafana/loki/pull/1071) **rfratto**: pkg/ingester: limit total number of errors a stream can return on push
  2515  * [1545](https://github.com/grafana/loki/pull/1545) **joe-elliott**: Critical n => m conversions
  2516  * [1541](https://github.com/grafana/loki/pull/1541) **owen-d**: legacy endpoint 400s metric queries
  2517  
  2518  #### Promtail
  2519  * [1515](https://github.com/grafana/loki/pull/1515) **slim-bean**: Promtail: Improve position and size metrics
  2520  * [1485](https://github.com/grafana/loki/pull/1485) **p37ruh4**: Fileglob parsing fixes
  2521  * [1472](https://github.com/grafana/loki/pull/1472) **owen-d**: positions.ignore-corruptions
  2522  * [1453](https://github.com/grafana/loki/pull/1453) **chancez**: pkg/promtail: Initialize counters to 0 when creating client
  2523  * [1436](https://github.com/grafana/loki/pull/1436) **rfratto**: promtail: add support for passing through journal entries as JSON
  2524  * [1426](https://github.com/grafana/loki/pull/1426) **wphan**: Support microsecond timestamp format
  2525  * [1416](https://github.com/grafana/loki/pull/1416) **pstibrany**: pkg/promtail/client: missing URL in client returns error
  2526  * [1275](https://github.com/grafana/loki/pull/1275) **bastjan**: pkg/promtail: IETF Syslog (RFC5424) Support
  2527  
  2528  #### Fluent Bit
  2529  * [1455](https://github.com/grafana/loki/pull/1455) **JensErat**: fluent-bit-plugin: re-enable failing JSON marshaller tests; pass error instead of logging and ignoring
  2530  * [1294](https://github.com/grafana/loki/pull/1294) **JensErat**: fluent-bit: multi-instance support
  2531  * [1514](https://github.com/grafana/loki/pull/1514) **shane-axiom**: fluent-plugin-grafana-loki: Add `fluentd_thread` label when `flush_thread_count` > 1
  2532  
  2533  #### Fluentd
  2534  * [1500](https://github.com/grafana/loki/pull/1500) **cyriltovena**: Bump fluentd plugin to 1.2.6.
  2535  * [1475](https://github.com/grafana/loki/pull/1475) **Horkyze**: fluentd-plugin: call gsub for strings only
  2536  
  2537  #### Docker Driver
  2538  * [1414](https://github.com/grafana/loki/pull/1414) **cyriltovena**: Adds tenant-id for docker driver.
  2539  
  2540  #### Logcli
  2541  * [1492](https://github.com/grafana/loki/pull/1492) **sandlis**: logcli: replaced GRAFANA_* with LOKI_* in logcli env vars, set default server url for logcli to localhost
  2542  
  2543  #### Helm
  2544  * [1534](https://github.com/grafana/loki/pull/1534) **olivierboudet**: helm : fix fluent-bit parser configuration syntax
  2545  * [1506](https://github.com/grafana/loki/pull/1506) **terjesannum**: helm: add podsecuritypolicy for fluent-bit
  2546  * [1431](https://github.com/grafana/loki/pull/1431) **eugene100**: Helm: fix issue with config.clients
  2547  * [1430](https://github.com/grafana/loki/pull/1430) **olivierboudet**: helm : allow to define custom parsers to use with fluentbit.io/parser annotation
  2548  * [1418](https://github.com/grafana/loki/pull/1418) **evalsocket**: Helm chart url added in helm.md
  2549  * [1336](https://github.com/grafana/loki/pull/1336) **terjesannum**: helm: support adding init containers to the loki pod
  2550  * [1530](https://github.com/grafana/loki/pull/1530) **WeiBanjo**: Allow extra command line args for external labels like hostname
  2551  
  2552  #### Jsonnet
  2553  * [1518](https://github.com/grafana/loki/pull/1518) **benjaminhuo**: Fix error 'Field does not exist: jaeger_mixin' in tk show
  2554  * [1501](https://github.com/grafana/loki/pull/1501) **anarcher**: jsonnet: fix common/defaultPorts parameters
  2555  * [1497](https://github.com/grafana/loki/pull/1497) **cyriltovena**: Update Loki mixin to include frontend QPS and latency.
  2556  * [1478](https://github.com/grafana/loki/pull/1478) **cyriltovena**: Fixes the typo in the result cache config of the Loki ksonnet lib.
  2557  * [1543](https://github.com/grafana/loki/pull/1543) **sh0rez**: fix(ksonnet): use apps/v1
  2558  
  2559  #### Docs
  2560  * [1531](https://github.com/grafana/loki/pull/1531) **fitzoh**: Documentation: Add note on using Loki with Amazon ECS
  2561  * [1521](https://github.com/grafana/loki/pull/1521) **rfratto**: docs: Document timestamp ordering rules
  2562  * [1516](https://github.com/grafana/loki/pull/1516) **rfratto**: Link to release docs in README.md, not master docs
  2563  * [1508](https://github.com/grafana/loki/pull/1508) **cyriltovena**: Fixes bad json in Loki API documentation.
  2564  * [1505](https://github.com/grafana/loki/pull/1505) **sandlis**: doc: fix sample yaml in docs for installing promtail to k8s
  2565  * [1481](https://github.com/grafana/loki/pull/1481) **terjesannum**: docs: fix broken promtail link
  2566  * [1474](https://github.com/grafana/loki/pull/1474) **Eraac**: <doc>: information about max_look_back_period
  2567  * [1471](https://github.com/grafana/loki/pull/1471) **cyriltovena**: Update README.md
  2568  * [1466](https://github.com/grafana/loki/pull/1466) **Eraac**: <documentation>: Update IAM requirement
  2569  * [1441](https://github.com/grafana/loki/pull/1441) **vtereso**: <Docs>: README spelling fix
  2570  * [1437](https://github.com/grafana/loki/pull/1437) **daixiang0**: fix all misspell
  2571  * [1432](https://github.com/grafana/loki/pull/1432) **joe-elliott**: Removed unsupported encodings from docs
  2572  * [1399](https://github.com/grafana/loki/pull/1399) **vishesh92**: Docs: Add configuration docs for redis
  2573  * [1394](https://github.com/grafana/loki/pull/1394) **chancez**: Documentation: Fix example AWS storage configuration
  2574  * [1227](https://github.com/grafana/loki/pull/1227) **daixiang0**: Add docker install doc
  2575  * [1560](https://github.com/grafana/loki/pull/1560) **robshep**: Promtail Docs: Update output.md
  2576  * [1546](https://github.com/grafana/loki/pull/1546) **mattmendick**: Removing third-party link
  2577  * [1539](https://github.com/grafana/loki/pull/1539) **j18e**: docs: fix syntax error in pipeline example
  2578  
  2579  #### Build
  2580  * [1494](https://github.com/grafana/loki/pull/1494) **pracucci**: Fixed TOUCH_PROTOS in all DroneCI pipelines
  2581  * [1479](https://github.com/grafana/loki/pull/1479) **owen-d**: TOUCH_PROTOS build arg for dockerfile
  2582  * [1476](https://github.com/grafana/loki/pull/1476) **owen-d**: initiates docker daemon for circle windows builds
  2583  * [1469](https://github.com/grafana/loki/pull/1469) **rfratto**: Makefile: re-enable journal scraping on ARM
  2584  
  2585  #### New Members!
  2586  * [1415](https://github.com/grafana/loki/pull/1415) **cyriltovena**: Add Joe as member of the team.
  2587  
  2588  # 1.2.0 (2019-12-09)
  2589  
  2590  One week has passed since the last Loki release, and it's time for a new one!
  2591  
  2592  ## Notable Changes
  2593  
  2594  We have continued our work making our API Prometheus-compatible. The key
  2595  changes centered around API compatibility are:
  2596  
  2597  * [1370](https://github.com/grafana/loki/pull/1370) **slim-bean**: Change `/loki/api/v1/label` to `loki/api/v1/labels`
  2598  * [1381](https://github.com/grafana/loki/pull/1381) **owen-d**: application/x-www-form-urlencoded support
  2599  
  2600  Meanwhile, @pstibrany has done great work ensuring that Loki handles hash
  2601  collisions properly:
  2602  
  2603  * [1247](https://github.com/grafana/loki/pull/1247) **pstibrany**: pkg/ingester: handle labels mapping to the same fast fingerprint.
  2604  
  2605  ## Other Changes
  2606  
  2607  :heart: All PR's are important to us, thanks everyone for continuing to help support and improve Loki! :heart:
  2608  
  2609  ### Features
  2610  
  2611  * [1372](https://github.com/grafana/loki/pull/1372) **cyriltovena**: Let Loki start when using the debug image.
  2612  * [1300](https://github.com/grafana/loki/pull/1300) **pstibrany**: pkg/ingester: check that ingester is in LEAVING state when transferring chunks and claiming tokens. Required when using memberlist client.
  2613  
  2614  ### Bug Fixes/Improvements
  2615  
  2616  * [1376](https://github.com/grafana/loki/pull/1376) **jstaffans**: Fluentd: guard against nil values when sanitizing labels
  2617  * [1371](https://github.com/grafana/loki/pull/1371) **cyriltovena**: Logql benchmark and performance improvement.
  2618  * [1363](https://github.com/grafana/loki/pull/1363) **cyriltovena**: Fixes fluentd new push path API.
  2619  * [1353](https://github.com/grafana/loki/pull/1353) **pstibrany**: docs: Fix grpc_listen_host and http_listen_host.
  2620  * [1350](https://github.com/grafana/loki/pull/1350) **Eraac**: documentation: iam requirement for autoscaling
  2621  
  2622  # 1.1.0 (2019-12-04)
  2623  
  2624  It's been a busy 2 weeks since the 1.0.0 release and quite a few important PR's have been merged to Loki.
  2625  
  2626  The most significant:
  2627  
  2628  * [1322](https://github.com/grafana/loki/pull/1322) **rfratto**: Fix v1 label API to be Prometheus-compatible
  2629  
  2630  Some might call this a **breaking change**, we are instead calling it a bug fix as our goal was to be prometheus compatible and we were not :smiley:
  2631  
  2632  **But please be aware if you are using the `/loki/api/v1/label` or `/loki/api/v1/label/<name>/values` the JSON result will be different in 1.1.0**
  2633  
  2634  Old result:
  2635  ```json
  2636  {
  2637    "values": [
  2638      "label1",
  2639      "label2",
  2640      "labeln"
  2641    ]
  2642  }
  2643  ```
  2644  New result:
  2645  
  2646  ```json
  2647  {
  2648    "status": "success",
  2649    "data": [
  2650      "label1",
  2651      "label2",
  2652      "labeln"
  2653    ]
  2654  }
  2655  ```
  2656  
  2657  **ALSO IMPORTANT**
  2658  
  2659  * [1160](https://github.com/grafana/loki/pull/1160) **daixiang0**: replace gzip with zip
  2660  
  2661  Binaries will now be zipped instead of gzipped as many people voiced their opinion that zip is likely to be installed on more systems by default.
  2662  
  2663  **If you had existing automation to download and install binaries this will have to be updated to use zip instead of gzip**
  2664  
  2665  ## Notable Fixes and Improvements
  2666  
  2667  * Broken version info in startup log message:
  2668  
  2669      [1095](https://github.com/grafana/loki/pull/1095) **pstibrany**: Makefile changes to allow easy builds with or without vendoring. Also fixes version bug for both cases.
  2670  
  2671  * The hashing algorithm used to calculate the hash for a stream was creating hash collisions in some instances.
  2672  **Please Note** this is just one part of the fix and is only in Promtail, the second part for Loki can be tracked [in PR1247](https://github.com/grafana/loki/pull/1247) which didn't quite make the cut for 1.1.0 and will be in 1.2.0:
  2673  
  2674      [1254](https://github.com/grafana/loki/pull/1254) **pstibrany**: pkg/promtail/client: Handle fingerprint hash collisions
  2675  
  2676  * Thank you @putrasattvika for finding and fixing an important bug where logs were some logs were missed in a query shortly after a flush!
  2677  
  2678      [1299](https://github.com/grafana/loki/pull/1299) **putrasattvika**: storage: fix missing logs with batched chunk iterator
  2679  
  2680  * Thank you @danieldabate for helping to again improve our API to be more Prometheus compatible:
  2681  
  2682      [1355](https://github.com/grafana/loki/pull/1355) **danieldabate**: HTTP API: Support duration and float formats for step parameter
  2683  
  2684  * LogQL will support duration formats that are not typically handled by Go like [1d] or [1w]
  2685  
  2686      [1357](https://github.com/grafana/loki/pull/1357) **cyriltovena**: Supports same duration format in LogQL as Prometheus
  2687  
  2688  
  2689  ## Everything Else
  2690  
  2691  :heart: All PR's are important to us, thanks everyone for continuing to help support and improve Loki! :heart:
  2692  
  2693  * [1349](https://github.com/grafana/loki/pull/1349) **Eraac**: documentation: using parsable value in example
  2694  * [1343](https://github.com/grafana/loki/pull/1343) **dgzlopes**: doc(configuration): Fix duration format.
  2695  * [1342](https://github.com/grafana/loki/pull/1342) **whothey**: Makefile: add debug symbols to loki and promtail debug builds
  2696  * [1341](https://github.com/grafana/loki/pull/1341) **adamjohnson01**: Update loki helm chart to support service account annotations
  2697  * [1340](https://github.com/grafana/loki/pull/1340) **adamjohnson01**: Pull in cortex changes to support IAM roles for EKS
  2698  * [1339](https://github.com/grafana/loki/pull/1339) **cyriltovena**: Update gem version.
  2699  * [1333](https://github.com/grafana/loki/pull/1333) **daixiang0**: fix broken link
  2700  * [1328](https://github.com/grafana/loki/pull/1328) **cyriltovena**: Fixes linter warning from the yacc file.
  2701  * [1326](https://github.com/grafana/loki/pull/1326) **dawidmalina**: Wrong api endpoint in fluent-plugin-grafana-loki
  2702  * [1320](https://github.com/grafana/loki/pull/1320) **roidelapluie**: Metrics: use Namespace everywhere when declaring metrics
  2703  * [1318](https://github.com/grafana/loki/pull/1318) **roidelapluie**: Use tenant as label name for discarded_samples metrics
  2704  * [1317](https://github.com/grafana/loki/pull/1317) **roidelapluie**: Expose discarded bytes metric
  2705  * [1316](https://github.com/grafana/loki/pull/1316) **slim-bean**: Removing old file needed for dep (no longer needed)
  2706  * [1312](https://github.com/grafana/loki/pull/1312) **ekeih**: Docs: Add missing ) in LogQL example
  2707  * [1311](https://github.com/grafana/loki/pull/1311) **pstibrany**: Include positions filename in the error when YAML unmarshal fails.
  2708  * [1310](https://github.com/grafana/loki/pull/1310) **JensErat**: fluent-bit: sorted JSON and properly convert []byte to string
  2709  * [1304](https://github.com/grafana/loki/pull/1304) **pstibrany**: promtail: write positions to new file first, move to target location afterwards
  2710  * [1303](https://github.com/grafana/loki/pull/1303) **zhangjianweibj**: https://github.com/grafana/loki/issues/1302
  2711  * [1298](https://github.com/grafana/loki/pull/1298) **rfratto**: pkg/promtail: remove journal target forced path
  2712  * [1279](https://github.com/grafana/loki/pull/1279) **rfratto**: Fix loki_discarded_samples_total metric
  2713  * [1278](https://github.com/grafana/loki/pull/1278) **rfratto**: docs: update limits_config to new structure from #948
  2714  * [1276](https://github.com/grafana/loki/pull/1276) **roidelapluie**: Update fluentbit README.md based on my experience
  2715  * [1274](https://github.com/grafana/loki/pull/1274) **sh0rez**: chore(ci): drone-cli
  2716  * [1273](https://github.com/grafana/loki/pull/1273) **JensErat**: fluent-bit: tenant ID configuration
  2717  * [1266](https://github.com/grafana/loki/pull/1266) **polar3130**: add description about tenant stage
  2718  * [1262](https://github.com/grafana/loki/pull/1262) **Eraac**: documentation: iam requirement for autoscaling
  2719  * [1261](https://github.com/grafana/loki/pull/1261) **rfratto**: Document systemd journal scraping
  2720  * [1249](https://github.com/grafana/loki/pull/1249) **cyriltovena**: Move to jsoniter instead of default json package
  2721  * [1223](https://github.com/grafana/loki/pull/1223) **jgehrcke**: authentication.md: replace "user" with "tenant"
  2722  * [1204](https://github.com/grafana/loki/pull/1204) **allanhung**: fluent-bit-plugin: Auto add Kubernetes labels to Loki labels
  2723  
  2724  
  2725  
  2726  # 1.0.0 (2019-11-19)
  2727  
  2728  :tada: Nearly a year since Loki was announced at KubeCon in Seattle 2018 we are very excited to announce the 1.0.0 release of Loki! :tada:
  2729  
  2730  A lot has happened since the announcement, the project just recently passed 1000 commits by 138 contributors over 700+ PR's accumulating over 7700 GitHub stars!
  2731  
  2732  Internally at Grafana Labs we have been using Loki to monitor all of our infrastructure and ingest around 1.5TB/10 billion log lines a day. Since the v0.2.0 release we have found Loki to be reliable and stable in our environments.
  2733  
  2734  We are comfortable with the state of the project in our production environments and think it's time to promote Loki to a non-beta release to communicate to everyone that they should feel comfortable using Loki in their production environments too.
  2735  
  2736  ## API Stability
  2737  
  2738  With the 1.0.0 release our intent is to try to follow Semver rules regarding stability with some aspects of Loki, focusing mainly on the operating experience of Loki as an application.  That is to say we are not planning any major changes to the HTTP API, and anything breaking would likely be accompanied by a major release with backwards compatibility support.
  2739  
  2740  We are currently NOT planning on maintaining Go API stability with this release, if you are importing Loki as a library you should be prepared for any kind of change, including breaking, even in minor or bugfix releases.
  2741  
  2742  Loki is still a young and active project and there might be some breaking config changes in non-major releases, rest assured this will be clearly communicated and backwards or overlapping compatibility will be provided if possible.
  2743  
  2744  ## Changes
  2745  
  2746  There were not as many changes in this release as the last, mainly we wanted to make sure Loki was mostly stable before 1.0.0.  The most notable change is the inclusion of the V11 schema in PR's [1201](https://github.com/grafana/loki/pull/1201) and [1280](https://github.com/grafana/loki/pull/1280).  The V11 schema adds some more data to the index to improve label queries over large amounts of time and series.  Currently we have not updated the Helm or Ksonnet to use the new schema, this will come soon with more details on how it works.
  2747  
  2748  The full list of changes:
  2749  
  2750  * [1280](https://github.com/grafana/loki/pull/1280) **owen-d**: Fix duplicate labels (update cortex)
  2751  * [1260](https://github.com/grafana/loki/pull/1260) **rfratto**: pkg/loki: unmarshal module name from YAML
  2752  * [1257](https://github.com/grafana/loki/pull/1257) **rfratto**: helm: update default terminationGracePeriodSeconds to 4800
  2753  * [1251](https://github.com/grafana/loki/pull/1251) **obitech**: docs: Fix promtail releases download link
  2754  * [1248](https://github.com/grafana/loki/pull/1248) **rfratto**: docs: slightly modify language in community Loki packages section
  2755  * [1242](https://github.com/grafana/loki/pull/1242) **tarokkk**: fluentd: Suppress unread configuration warning
  2756  * [1239](https://github.com/grafana/loki/pull/1239) **pracucci**: Move ReservedLabelTenantID out from a dedicated file
  2757  * [1238](https://github.com/grafana/loki/pull/1238) **oke-py**: helm: loki-stack supports k8s 1.16
  2758  * [1237](https://github.com/grafana/loki/pull/1237) **joe-elliott**: Rollback google.golang.org/api to 0.8.0
  2759  * [1235](https://github.com/grafana/loki/pull/1235) **woodsaj**: ci: update triggers to use new deployment_tools location
  2760  * [1234](https://github.com/grafana/loki/pull/1234) **rfratto**: Standardize schema used in `match` stage
  2761  * [1233](https://github.com/grafana/loki/pull/1233) **wapmorgan**: Update docker-driver Dockerfile: add tzdb
  2762  * [1232](https://github.com/grafana/loki/pull/1232) **rfratto**: Fix drone deploy job
  2763  * [1231](https://github.com/grafana/loki/pull/1231) **joe-elliott**: Removed references to Loki free tier
  2764  * [1226](https://github.com/grafana/loki/pull/1226) **clickyotomy**: Update dependencies to use weaveworks/common upstream
  2765  * [1221](https://github.com/grafana/loki/pull/1221) **slim-bean**: use regex label matcher to not alert on any tail route latencies
  2766  * [1219](https://github.com/grafana/loki/pull/1219) **MightySCollins**: docs: Updated Kubernetes docs links in Helm charts
  2767  * [1218](https://github.com/grafana/loki/pull/1218) **slim-bean**: update dashboards to include the new /loki/api/v1/* endpoints
  2768  * [1217](https://github.com/grafana/loki/pull/1217) **slim-bean**: sum the bad words by name and level
  2769  * [1216](https://github.com/grafana/loki/pull/1216) **joe-elliott**: Remove rules that reference no longer existing metrics
  2770  * [1215](https://github.com/grafana/loki/pull/1215) **Eraac**: typo url
  2771  * [1214](https://github.com/grafana/loki/pull/1214) **takanabe**: Correct wrong document paths about querying
  2772  * [1213](https://github.com/grafana/loki/pull/1213) **slim-bean**: Fix docker latest and master tags
  2773  * [1212](https://github.com/grafana/loki/pull/1212) **joe-elliott**: Update loki operational
  2774  * [1206](https://github.com/grafana/loki/pull/1206) **sandlis**: ksonnet: fix replication always set to 3 in ksonnet
  2775  * [1203](https://github.com/grafana/loki/pull/1203) **joe-elliott**: Chunk iterator performance improvement
  2776  * [1202](https://github.com/grafana/loki/pull/1202) **beorn7**: Simplify regexp's
  2777  * [1201](https://github.com/grafana/loki/pull/1201) **cyriltovena**: Update cortex to bring v11 schema
  2778  * [1189](https://github.com/grafana/loki/pull/1189) **putrasattvika**: fluent-plugin: Add client certificate verification
  2779  * [1186](https://github.com/grafana/loki/pull/1186) **tarokkk**: fluentd: Refactor label_keys and and add extract_kubernetes_labels configuration
  2780  
  2781  # 0.4.0 (2019-10-24)
  2782  
  2783  A **huge** thanks to the **36 contributors** who submitted **148 PR's** since 0.3.0!
  2784  
  2785  ## Notable Changes
  2786  
  2787  * With PR [654](https://github.com/grafana/loki/pull/654) @cyriltovena added a really exciting new capability to Loki, a Prometheus compatible API with support for running metric style queries against your logs! [Take a look at how to write metric queries for logs](https://github.com/grafana/loki/blob/master/docs/logql.md#counting-logs)
  2788      > PLEASE NOTE: To use metric style queries in the current Grafana release 6.4.x you will need to add Loki as a Prometheus datasource in addition to having it as a Log datasource and you will have to select the correct source for querying logs vs metrics, coming soon Grafana will support both logs and metric queries directly to the Loki datasource!
  2789  * PR [1022](https://github.com/grafana/loki/pull/1022) (and a few others) @joe-elliott added a new set of HTTP endpoints in conjunction with the work @cyriltovena to create a Prometheus compatible API as well as improve how labels/timestamps are handled
  2790      > IMPORTANT: The new `/api/v1/*` endpoints contain breaking changes on the query paths (push path is unchanged) Eventually the `/api/prom/*` endpoints will be removed
  2791  * PR [847](https://github.com/grafana/loki/pull/847) owes a big thanks to @cosmo0920 for contributing his Fluent Bit go plugin, now loki has Fluent Bit plugin support!!
  2792  
  2793  * PR [982](https://github.com/grafana/loki/pull/982) was a couple weeks of painstaking work by @rfratto for a much needed improvement to Loki's docs! [Check them out!](https://github.com/grafana/loki/tree/master/docs)
  2794  
  2795  * PR [980](https://github.com/grafana/loki/pull/980) by @sh0rez improved how flags and config file's are loaded to honor a more traditional order of precedence:
  2796      1. Defaults
  2797      2. Config file
  2798      3. User-supplied flag values (command line arguments)
  2799      > PLEASE NOTE: This is potentially a breaking change if you were passing command line arguments that also existed in a config file in which case the order they are given priority now has changed!
  2800  
  2801  * PR [1062](https://github.com/grafana/loki/pull/1062) and [1089](https://github.com/grafana/loki/pull/1089) have moved Loki from Dep to Go Modules and to Go 1.13
  2802  
  2803  
  2804  ## Loki
  2805  
  2806  ### Features/Improvements/Changes
  2807  
  2808  * **Loki** [1171](https://github.com/grafana/loki/pull/1171) **cyriltovena**: Moves request parsing into the loghttp package
  2809  * **Loki** [1145](https://github.com/grafana/loki/pull/1145) **joe-elliott**: Update `/loki/api/v1/push` to use the v1 json format
  2810  * **Loki** [1128](https://github.com/grafana/loki/pull/1128) **sandlis**: bigtable-backup: list backups just before starting deletion of wanted backups
  2811  * **Loki** [1100](https://github.com/grafana/loki/pull/1100) **sandlis**: logging: removed some noise in logs from live-tailing
  2812  * **Loki/build** [1089](https://github.com/grafana/loki/pull/1089) **joe-elliott**: Go 1.13
  2813  * **Loki** [1088](https://github.com/grafana/loki/pull/1088) **pstibrany**: Updated cortex to latest master.
  2814  * **Loki** [1085](https://github.com/grafana/loki/pull/1085) **pracucci**: Do not retry chunks transferring on shutdown in the local dev env
  2815  * **Loki** [1084](https://github.com/grafana/loki/pull/1084) **pracucci**: Skip ingester tailer filtering if no filter is set
  2816  * **Loki/build**[1062](https://github.com/grafana/loki/pull/1062) **joe-elliott**: dep => go mod
  2817  * **Loki** [1049](https://github.com/grafana/loki/pull/1049) **joe-elliott**: Update loki push path
  2818  * **Loki** [1044](https://github.com/grafana/loki/pull/1044) **joe-elliott**: Fixed broken logql request filtering
  2819  * **Loki/tools** [1043](https://github.com/grafana/loki/pull/1043) **sandlis**: bigtable-backup: use latest bigtable backup docker image with fix for list backups
  2820  * **Loki** [1030](https://github.com/grafana/loki/pull/1030) **polar3130**: fix typo in error messages
  2821  * **Loki/tools** [1028](https://github.com/grafana/loki/pull/1028) **sandlis**: bigtable-backup: verify backups to work on latest list of backups
  2822  * **Loki** [1022](https://github.com/grafana/loki/pull/1022) **joe-elliott**: Loki HTTP/JSON Model Layer
  2823  * **Loki** [1016](https://github.com/grafana/loki/pull/1016) **slim-bean**: Revert "Updated stream json objects to be more parse friendly (#1010)"
  2824  * **Loki** [1010](https://github.com/grafana/loki/pull/1010) **joe-elliott**: Updated stream json objects to be more parse friendly
  2825  * **Loki** [1009](https://github.com/grafana/loki/pull/1009) **cyriltovena**: Make Loki HTTP API more compatible with Prometheus
  2826  * **Loki** [1008](https://github.com/grafana/loki/pull/1008) **wardbekker**: Improved Ingester out-of-order error for faster troubleshooting
  2827  * **Loki** [1001](https://github.com/grafana/loki/pull/1001) **slim-bean**: Update new API paths
  2828  * **Loki** [998](https://github.com/grafana/loki/pull/998) **sandlis**: Change unit of duration params to hours to align it with duration config at other places in Loki
  2829  * **Loki** [980](https://github.com/grafana/loki/pull/980) **sh0rez**: feat: configuration source precedence
  2830  * **Loki** [948](https://github.com/grafana/loki/pull/948) **sandlis**: limits: limits implementation for loki
  2831  * **Loki** [947](https://github.com/grafana/loki/pull/947) **sandlis**: added a variable for storing periodic table duration as an int to be …
  2832  * **Loki** [938](https://github.com/grafana/loki/pull/938) **sandlis**: vendoring: update cortex to latest master
  2833  * **Loki/tools** [930](https://github.com/grafana/loki/pull/930) **sandlis**: fix incrementing of bigtable_backup_job_backups_created metric
  2834  * **Loki/tools** [920](https://github.com/grafana/loki/pull/920) **sandlis**: bigtable-backup tool fix
  2835  * **Loki/tools** [895](https://github.com/grafana/loki/pull/895) **sandlis**: bigtable-backup-tool: Improvements
  2836  * **Loki** [755](https://github.com/grafana/loki/pull/755) **sandlis**: Use grpc client config from cortex for Ingester to get more control
  2837  * **Loki** [654](https://github.com/grafana/loki/pull/654) **cyriltovena**: LogQL: Vector and Range Vector Aggregation.
  2838  
  2839  ### Bug Fixes
  2840  * **Loki** [1114](https://github.com/grafana/loki/pull/1114) **rfratto**: pkg/ingester: prevent shutdowns from processing during joining handoff
  2841  * **Loki** [1097](https://github.com/grafana/loki/pull/1097) **joe-elliott**: Reverted cloud.google.com/go to 0.44.1
  2842  * **Loki** [986](https://github.com/grafana/loki/pull/986) **pracucci**: Fix panic in tailer due to race condition between send() and close()
  2843  * **Loki** [975](https://github.com/grafana/loki/pull/975) **sh0rez**: fix(distributor): parseError BadRequest
  2844  * **Loki** [944](https://github.com/grafana/loki/pull/944) **rfratto**: pkg/querier: fix concurrent access to querier tail clients
  2845  
  2846  ## Promtail
  2847  
  2848  ### Features/Improvements/Changes
  2849  
  2850  * **Promtail/pipeline** [1179](https://github.com/grafana/loki/pull/1179) **pracucci**: promtail: fix handling of JMESPath expression returning nil while parsing JSON
  2851  * **Promtail/pipeline** [1123](https://github.com/grafana/loki/pull/1123) **pracucci**: promtail: added action_on_failure support to timestamp stage
  2852  * **Promtail/pipeline** [1122](https://github.com/grafana/loki/pull/1122) **pracucci**: promtail: initialize extracted map with initial labels
  2853  * **Promtail/pipeline** [1112](https://github.com/grafana/loki/pull/1112) **cyriltovena**: Add logql filter to match stages and drop capability
  2854  * **Promtail/journal** [1109](https://github.com/grafana/loki/pull/1109) **rfratto**: Clarify journal warning
  2855  * **Promtail** [1083](https://github.com/grafana/loki/pull/1083) **pracucci**: Increased promtail's backoff settings in prod and improved doc
  2856  * **Promtail** [1026](https://github.com/grafana/loki/pull/1026) **erwinvaneyk**: promtail: fix externalURL and path prefix issues
  2857  * **Promtail** [976](https://github.com/grafana/loki/pull/976) **slim-bean**: Wrap debug log statements in conditionals to save allocations
  2858  * **Promtail** [973](https://github.com/grafana/loki/pull/973) **ctrox**: tests: Set default value for BatchWait as ticker does not accept 0
  2859  * **Promtail** [969](https://github.com/grafana/loki/pull/969) **ctrox**: promtail: Use ticker instead of timer for batch wait
  2860  * **Promtail** [952](https://github.com/grafana/loki/pull/952) **pracucci**: promtail: add metrics on sent and dropped log entries
  2861  * **Promtail** [934](https://github.com/grafana/loki/pull/934) **pracucci**: promtail: do not send the last batch - to ingester - if empty
  2862  * **Promtail** [921](https://github.com/grafana/loki/pull/921) **rfratto**: promtail: add "max_age" field to configure cutoff for journal reading
  2863  * **Promtail** [883](https://github.com/grafana/loki/pull/883) **adityacs**: Add pipeline unit testing to promtail
  2864  
  2865  ### Bugfixes
  2866  
  2867  * **Promtail** [1194](https://github.com/grafana/loki/pull/1194) **slim-bean**: Improve how we record file size metric to avoid a race in our file lagging alert
  2868  * **Promtail/journal** [1072](https://github.com/grafana/loki/pull/1072) **rfratto**: build: enable journal in promtail linux release build
  2869  
  2870  ## Docs
  2871  
  2872  * **Docs** [1176](https://github.com/grafana/loki/pull/1176) **rfratto**: docs: add example and documentation about using JMESPath literals
  2873  * **Docs** [1139](https://github.com/grafana/loki/pull/1139) **joe-elliott**: Moved client docs and add serilog example
  2874  * **Docs** [1132](https://github.com/grafana/loki/pull/1132) **kailwallin**: FixedTypo.Update README.md
  2875  * **Docs** [1130](https://github.com/grafana/loki/pull/1130) **pracucci**: docs: fix Promtail / Loki capitalization
  2876  * **Docs** [1129](https://github.com/grafana/loki/pull/1129) **pracucci**: docs: clarified the relation between retention period and table period
  2877  * **Docs** [1124](https://github.com/grafana/loki/pull/1124) **geowa4**: Client recommendations documentation tweaks
  2878  * **Docs** [1106](https://github.com/grafana/loki/pull/1106) **cyriltovena**: Add fluent-bit missing link in the main documentation page.
  2879  * **Docs** [1099](https://github.com/grafana/loki/pull/1099) **pracucci**: docs: improve table manager documentation
  2880  * **Docs** [1094](https://github.com/grafana/loki/pull/1094) **rfratto**: docs: update stages README with the docker and cri stages
  2881  * **Docs** [1091](https://github.com/grafana/loki/pull/1091) **daixiang0**: docs(stage): add docker and cri
  2882  * **Docs** [1077](https://github.com/grafana/loki/pull/1077) **daixiang0**: doc(fluent-bit): add missing namespace
  2883  * **Docs** [1073](https://github.com/grafana/loki/pull/1073) **flouthoc**: Re Fix Docs: PR https://github.com/grafana/loki/pull/1053 got erased due to force push.
  2884  * **Docs** [1069](https://github.com/grafana/loki/pull/1069) **daixiang0**: doc: unify GOPATH
  2885  * **Docs** [1068](https://github.com/grafana/loki/pull/1068) **daixiang0**: doc: skip jb init when using Tanka
  2886  * **Docs** [1067](https://github.com/grafana/loki/pull/1067) **rfratto**: Fix broken links to docs in README.md
  2887  * **Docs** [1064](https://github.com/grafana/loki/pull/1064) **jonaskello**: Fix spelling of HTTP header
  2888  * **Docs** [1063](https://github.com/grafana/loki/pull/1063) **rfratto**: docs: fix deprecated warning in api.md
  2889  * **Docs** [1060](https://github.com/grafana/loki/pull/1060) **rfratto**: Add Drone CI badge to README.md
  2890  * **Docs** [1053](https://github.com/grafana/loki/pull/1053) **flouthoc**: Fix Docs: Change Imagepull policy to IfNotpresent / Add loki-canary b…
  2891  * **Docs** [1048](https://github.com/grafana/loki/pull/1048) **wassan128**: Loki: Fix README link
  2892  * **Docs** [1042](https://github.com/grafana/loki/pull/1042) **daixiang0**: doc(ksonnet): include ksonnet-lib
  2893  * **Docs** [1039](https://github.com/grafana/loki/pull/1039) **sh0rez**: doc(production): replace ksonnet with Tanka
  2894  * **Docs** [1036](https://github.com/grafana/loki/pull/1036) **sh0rez**: feat: -version flag
  2895  * **Docs** [1025](https://github.com/grafana/loki/pull/1025) **oddlittlebird**: Update CONTRIBUTING.md
  2896  * **Docs** [1024](https://github.com/grafana/loki/pull/1024) **oddlittlebird**: Update README.md
  2897  * **Docs** [1014](https://github.com/grafana/loki/pull/1014) **polar3130**: Fix a link to correct doc and fix a typo
  2898  * **Docs** [1006](https://github.com/grafana/loki/pull/1006) **slim-bean**: fixing lots of broken links and a few typos
  2899  * **Docs** [1005](https://github.com/grafana/loki/pull/1005) **SmilingNavern**: Fix links to correct doc
  2900  * **Docs** [1004](https://github.com/grafana/loki/pull/1004) **rfratto**: docs: fix example with pulling systemd logs
  2901  * **Docs** [1003](https://github.com/grafana/loki/pull/1003) **oddlittlebird**: Loki: Update README.md
  2902  * **Docs** [984](https://github.com/grafana/loki/pull/984) **tomgs**: Changing "Usage" link in main readme after docs change
  2903  * **Docs** [983](https://github.com/grafana/loki/pull/983) **daixiang0**: update positions.yaml location reference
  2904  * **Docs** [982](https://github.com/grafana/loki/pull/982) **rfratto**: Documentation Rewrite
  2905  * **Docs** [961](https://github.com/grafana/loki/pull/961) **worr**: doc: Add permissions that IAM roles for Loki need
  2906  * **Docs** [933](https://github.com/grafana/loki/pull/933) **pracucci**: doc: move promtail doc into dedicated subfolder
  2907  * **Docs** [924](https://github.com/grafana/loki/pull/924) **pracucci**: doc: promtail known failure modes
  2908  * **Docs** [910](https://github.com/grafana/loki/pull/910) **slim-bean**: docs(build): Update docs around releasing and fix bug in version updating script
  2909  * **Docs** [850](https://github.com/grafana/loki/pull/850) **sh0rez**: docs: general documentation rework
  2910  
  2911  ## Build
  2912  
  2913  * **Build** [1157](https://github.com/grafana/loki/pull/1157) **daixiang0**: Update golint
  2914  * **Build** [1133](https://github.com/grafana/loki/pull/1133) **daixiang0**: bump up golangci to 1.20
  2915  * **Build** [1121](https://github.com/grafana/loki/pull/1121) **pracucci**: Publish loki-canary binaries on release
  2916  * **Build** [1054](https://github.com/grafana/loki/pull/1054) **pstibrany**: Fix dep check warnings by running dep ensure
  2917  * **Build/release** [1018](https://github.com/grafana/loki/pull/1018) **slim-bean**: updating the image version for loki-canary and adding the version increment to the release_prepare script
  2918  * **Build/CI** [997](https://github.com/grafana/loki/pull/997) **slim-bean**: full circle
  2919  * **Build/CI** [996](https://github.com/grafana/loki/pull/996) **rfratto**: ci/drone: fix deploy command by escaping double quotes in JSON body
  2920  * **Build/CI** [995](https://github.com/grafana/loki/pull/995) **slim-bean**: use the loki-build-image for calling circle
  2921  * **Build/CI** [994](https://github.com/grafana/loki/pull/994) **slim-bean**: Also need bash for the deploy step from drone
  2922  * **Build/CI** [993](https://github.com/grafana/loki/pull/993) **slim-bean**: Add make to the alpine image used for calling the circle deploy task from drone.
  2923  * **Build/CI** [992](https://github.com/grafana/loki/pull/992) **sh0rez**: chore(packaging): fix GOPATH being overwritten
  2924  * **Build/CI** [991](https://github.com/grafana/loki/pull/991) **sh0rez**: chore(packaging): deploy from drone
  2925  * **Build/CI** [990](https://github.com/grafana/loki/pull/990) **sh0rez**: chore(ci/cd): breaking the circle
  2926  * **Build** [989](https://github.com/grafana/loki/pull/989) **sh0rez**: chore(packaging): simplify tagging
  2927  * **Build** [981](https://github.com/grafana/loki/pull/981) **sh0rez**: chore(packaging): loki windows/amd64
  2928  * **Build** [958](https://github.com/grafana/loki/pull/958) **daixiang0**: sync release pkgs name with release note
  2929  * **Build/CI** [914](https://github.com/grafana/loki/pull/914) **rfratto**: ci: update apt-get before installing deps for rootless step
  2930  * **Build** [911](https://github.com/grafana/loki/pull/911) **daixiang0**: optimize image tag script
  2931  
  2932  ## Deployment
  2933  
  2934  * **Ksonnet** [1023](https://github.com/grafana/loki/pull/1023) **slim-bean**: make promtail daemonset name configurable
  2935  * **Ksonnet** [1021](https://github.com/grafana/loki/pull/1021) **rfratto**: ksonnet: update memcached and memcached-exporter images
  2936  * **Ksonnet** [1020](https://github.com/grafana/loki/pull/1020) **rfratto**: ksonnet: use consistent hashing in memcached client configs
  2937  * **Ksonnet** [1017](https://github.com/grafana/loki/pull/1017) **slim-bean**: make promtail configmap name configurable
  2938  * **Ksonnet** [946](https://github.com/grafana/loki/pull/946) **rfratto**: ksonnet: remove prefix from kvstore.consul settings in loki config
  2939  * **Ksonnet** [926](https://github.com/grafana/loki/pull/926) **slim-bean**: feat(promtail): Make cluster role configurable
  2940  <!-- -->
  2941  * **Helm** [1174](https://github.com/grafana/loki/pull/1174) **rally25rs**: loki-stack: Add release name to prometheus service name.
  2942  * **Helm** [1152](https://github.com/grafana/loki/pull/1152) **nicr9**: docs(helm): fix broken link to grafana datasource
  2943  * **Helm** [1134](https://github.com/grafana/loki/pull/1134) **minhdanh**: Helm chart: Allow additional scrape_configs to be added
  2944  * **Helm** [1111](https://github.com/grafana/loki/pull/1111) **ekarlso**: helm: Add support for passing arbitrary secrets
  2945  * **Helm** [1110](https://github.com/grafana/loki/pull/1110) **marcosnils**: Bump grafana image in loki helm chart
  2946  * **Helm** [1104](https://github.com/grafana/loki/pull/1104) **marcosnils**: <Examples>: Deploy prometheus from helm chart
  2947  * **Helm** [1058](https://github.com/grafana/loki/pull/1058) **polar3130**: Helm: Remove default value of storageClassName in loki/loki helm chart
  2948  * **Helm** [1056](https://github.com/grafana/loki/pull/1056) **polar3130**: Helm: Fix the reference error of loki/loki helm chart
  2949  * **Helm** [967](https://github.com/grafana/loki/pull/967) **makocchi-git**: helm chart: Add missing operator to promtail
  2950  * **Helm** [937](https://github.com/grafana/loki/pull/937) **minhdanh**: helm chart: Add support for additional labels and scrapeTimeout for serviceMonitors
  2951  * **Helm** [909](https://github.com/grafana/loki/pull/909) **angelbarrera92**: Feature: Add extra containers to loki helm chart
  2952  * **Helm** [855](https://github.com/grafana/loki/pull/855) **ikeeip**: set helm chart appVersion while release
  2953  * **Helm** [675](https://github.com/grafana/loki/pull/675) **cyriltovena**: Helm default ingester config
  2954  
  2955  ## Loki Canary
  2956  
  2957  * **Loki-canary** [1137](https://github.com/grafana/loki/pull/1137) **slim-bean**: Add some additional logging to the canary on queries
  2958  * **Loki-canary** [1131](https://github.com/grafana/loki/pull/1131) **rfratto**: pkg/canary: use default HTTP client when reading from Loki
  2959  
  2960  ## Logcli
  2961  
  2962  * **Logcli** [1168](https://github.com/grafana/loki/pull/1168) **sh0rez**: feat(cli): order flags by categories
  2963  * **Logcli** [1115](https://github.com/grafana/loki/pull/1115) **pracucci**: logcli: introduced QueryStringBuilder utility to clean up query string encoding
  2964  * **Logcli** [1103](https://github.com/grafana/loki/pull/1103) **pracucci**: logcli: added --step support to query command
  2965  * **Logcli** [987](https://github.com/grafana/loki/pull/987) **joe-elliott**: Logcli: Add Support for New Query Path
  2966  
  2967  ## Tooling
  2968  
  2969  * **Dashboards** [1188](https://github.com/grafana/loki/pull/1188) **joe-elliott**: Adding Operational dashboards
  2970  * **Dashboards** [1143](https://github.com/grafana/loki/pull/1143) **joe-elliott**: Improved compression ratio histogram
  2971  * **Dashboards** [1126](https://github.com/grafana/loki/pull/1126) **joe-elliott**: Fix Loki Chunks Dashboard
  2972  * **Tools** [1108](https://github.com/grafana/loki/pull/1108) **joe-elliott**: Updated push path to current prod
  2973  
  2974  ## Plugins
  2975  
  2976  * **DockerDriver** [972](https://github.com/grafana/loki/pull/972) **cyriltovena**: Add stream label to docker driver
  2977  * **DockerDriver** [971](https://github.com/grafana/loki/pull/971) **cyriltovena**: Allow to pass max-size and max-file to the docker driver
  2978  * **DockerDriver** [970](https://github.com/grafana/loki/pull/970) **mindfl**: docker-driver compose labels support
  2979  <!-- -->
  2980  * **Fluentd** [928](https://github.com/grafana/loki/pull/928) **candlerb**: fluent-plugin-grafana-loki: Escape double-quotes in labels, and suppress labels with value nil
  2981  <!-- -->
  2982  * **Fluent Bit** [1155](https://github.com/grafana/loki/pull/1155) **cyriltovena**: rollback fluent-bit push path until we release 0.4
  2983  * **Fluent Bit** [1096](https://github.com/grafana/loki/pull/1096) **JensErat**: fluent-bit: edge case tests
  2984  * **Fluent Bit** [847](https://github.com/grafana/loki/pull/847) **cosmo0920**: fluent-bit shared object go plugin
  2985  
  2986  ## Misc
  2987  
  2988  Loki is now using a Bot to help keep issues and PR's pruned based on age/relevancy.  Please don't hesitate to comment on an issue or PR that you think was closed by the stale-bot which you think should remain open!!
  2989  
  2990  * **Github** [965](https://github.com/grafana/loki/pull/965) **rfratto**: Change label used to keep issues from being marked as stale to keepalive
  2991  * **Github** [964](https://github.com/grafana/loki/pull/964) **rfratto**: Add probot-stale configuration to close stale issues.
  2992  
  2993  
  2994  
  2995  
  2996  
  2997  
  2998  
  2999  
  3000  
  3001  
  3002  
  3003  # 0.3.0 (2019-08-16)
  3004  
  3005  ### Features/Enhancements
  3006  
  3007  
  3008  * **Loki** [877](https://github.com/grafana/loki/pull/877) **pracucci**: loki: Improve Tailer loop
  3009  * **Loki** [870](https://github.com/grafana/loki/pull/870) **sandlis**: bigtable-backup: update docker image for bigtable-backup tool
  3010  * **Loki** [862](https://github.com/grafana/loki/pull/862) **sandlis**: live-tailing: preload all the historic entries before query context is cancelled
  3011  * **Loki** [858](https://github.com/grafana/loki/pull/858) **pracucci**: loki: removed unused TestGZIPCompression
  3012  * **Loki** [854](https://github.com/grafana/loki/pull/854) **adityacs**: Readiness probe for querier
  3013  * **Loki** [851](https://github.com/grafana/loki/pull/851) **cyriltovena**: Add readiness probe to distributor deployment.
  3014  * **Loki** [894](https://github.com/grafana/loki/pull/894) **rfratto**: ksonnet: update ingester config to transfer chunks on rollout
  3015  <!-- -->
  3016  * **Build** [901](https://github.com/grafana/loki/pull/901) **sh0rez**: chore(packaging): set tag length to 7
  3017  * **Build** [900](https://github.com/grafana/loki/pull/900) **sh0rez**: chore(ci/cd): fix grafanasaur credentials and CircleCI image build
  3018  * **Build** [891](https://github.com/grafana/loki/pull/891) **sh0rez**: chore(ci/cd): build containers using drone.io
  3019  * **Build** [888](https://github.com/grafana/loki/pull/888) **rfratto**: Makefile: disable building promtail with systemd support on non-amd64 platforms
  3020  * **Build** [887](https://github.com/grafana/loki/pull/887) **slim-bean**: chore(packaging): Dockerfile make avoid containers
  3021  * **Build** [886](https://github.com/grafana/loki/pull/886) **sh0rez**: chore(packaging): wrong executable format
  3022  * **Build** [855](https://github.com/grafana/loki/pull/855) **ikeeip**: set helm chart appVersion while release
  3023  <!-- -->
  3024  * **Promtail** [856](https://github.com/grafana/loki/pull/856) **martinbaillie**: promtail: Add ServiceMonitor and headless Service
  3025  * **Promtail** [809](https://github.com/grafana/loki/pull/809) **rfratto**: Makefile: build promtail with CGO_ENABLED if GOHOSTOS=GOOS=linux
  3026  * **Promtail** [730](https://github.com/grafana/loki/pull/730) **rfratto**: promtail: Add systemd journal support
  3027  
  3028  > 809, 730 NOTE: Systemd journal support is currently limited to amd64 images, arm support should come in the future when the transition to building the arm image and binaries is done natively via an arm container
  3029  <!-- -->
  3030  * **Docs** [896](https://github.com/grafana/loki/pull/896) **dalance**: docs: fix link format
  3031  * **Docs** [876](https://github.com/grafana/loki/pull/876) **BouchaaraAdil**: update Docs: update Retention section on Operations doc file
  3032  * **Docs** [864](https://github.com/grafana/loki/pull/864) **temal-**: docs: Replace old values in operations.md
  3033  * **Docs** [853](https://github.com/grafana/loki/pull/853) **cyriltovena**: Add governance documentation
  3034  <!-- -->
  3035  * **Deployment** [874](https://github.com/grafana/loki/pull/874) **slim-bean**: make our ksonnet a little more modular by parameterizing the chunk and index stores
  3036  * **Deployment** [857](https://github.com/grafana/loki/pull/857) **slim-bean**: Reorder relabeling rules to prevent pod label from overwriting config define labels
  3037  
  3038  > 857 POSSIBLY BREAKING: If you relied on a custom pod label to overwrite one of the labels configured by the other sections of the scrape config: `job`, `namespace`, `instance`, `container_name` and/or `__path__`, this will no longer happen, the custom pod labels are now loaded first and will be overwritten by any of these listed labels.
  3039  
  3040  
  3041  ### Fixes
  3042  
  3043  * **Loki** [897](https://github.com/grafana/loki/pull/897) **pracucci**: Fix panic in tailer when an ingester is removed from the ring while tailing
  3044  * **Loki** [880](https://github.com/grafana/loki/pull/880) **cyriltovena**: fix a bug where nil line buffer would be put back
  3045  * **Loki** [859](https://github.com/grafana/loki/pull/859) **pracucci**: loki: Fixed out of order entries allowed in a chunk on edge case
  3046  <!-- -->
  3047  * **Promtail** [893](https://github.com/grafana/loki/pull/893) **rfratto**: pkg/promtail/positions: remove executable bit from positions file
  3048  <!-- -->
  3049  * **Deployment** [867](https://github.com/grafana/loki/pull/867) **slim-bean**: Update read dashboard to include only query and label query routes
  3050  * **Deployment** [865](https://github.com/grafana/loki/pull/865) **sandlis**: fix broken jsonnet for querier
  3051  <!-- -->
  3052  * **Canary** [889](https://github.com/grafana/loki/pull/889) **slim-bean**: fix(canary): Fix Flaky Tests
  3053  <!-- -->
  3054  * **Pipeline** [869](https://github.com/grafana/loki/pull/869) **jojohappy**: Pipeline: Fixed labels process test with same objects
  3055  <!-- -->
  3056  * **Logcli** [863](https://github.com/grafana/loki/pull/863) **adityacs**: Fix Nolabels parse metrics
  3057  
  3058  
  3059  # 0.2.0 (2019-08-02)
  3060  
  3061  There were over 100 PR's merged since 0.1.0 was released, here's a highlight:
  3062  
  3063  ### Features / Enhancements
  3064  
  3065  * **Loki**:  [521](https://github.com/grafana/loki/pull/521) Query label values and names are now fetched from the store.
  3066  * **Loki**:  [541](https://github.com/grafana/loki/pull/541) Improvements in live tailing of logs.
  3067  * **Loki**: [713](https://github.com/grafana/loki/pull/713) Storage memory improvement.
  3068  * **Loki**: [764](https://github.com/grafana/loki/pull/764) Tailing can fetch previous logs for context.
  3069  * **Loki**: [782](https://github.com/grafana/loki/pull/782) Performance improvement: Query storage by iterating through chunks in batches.
  3070  * **Loki**: [788](https://github.com/grafana/loki/pull/788) Querier timeouts.
  3071  * **Loki**: [794](https://github.com/grafana/loki/pull/794) Support ingester chunk transfer on shutdown.
  3072  * **Loki**: [729](https://github.com/grafana/loki/pull/729) Bigtable backup tool support.
  3073  <!-- -->
  3074  * **Pipeline**: [738](https://github.com/grafana/loki/pull/738) Added a template stage for manipulating label values.
  3075  * **Pipeline**: [732](https://github.com/grafana/loki/pull/732) Support for Unix timestamps.
  3076  * **Pipeline**: [760](https://github.com/grafana/loki/pull/760) Support timestamps without year.
  3077  <!-- -->
  3078  * **Helm**:  [641](https://github.com/grafana/loki/pull/641) Helm integration testing.
  3079  * **Helm**: [824](https://github.com/grafana/loki/pull/824) Add service monitor.
  3080  * **Helm**: [830](https://github.com/grafana/loki/pull/830) Customize namespace.
  3081  <!-- -->
  3082  * **Docker-Plugin**: [663](https://github.com/grafana/loki/pull/663) Created a Docker logging driver plugin.
  3083  <!-- -->
  3084  * **Fluent-Plugin**: [669](https://github.com/grafana/loki/pull/669) Ability to specify keys to remove.
  3085  * **Fluent-Plugin**: [709](https://github.com/grafana/loki/pull/709) Multi-worker support.
  3086  * **Fluent-Plugin**: [792](https://github.com/grafana/loki/pull/792) Add prometheus for metrics and update gems.
  3087  <!-- -->
  3088  * **Build**: [668](https://github.com/grafana/loki/pull/668),[762](https://github.com/grafana/loki/pull/762) Build multiple architecture containers.
  3089  <!-- -->
  3090  * **Loki-Canary**: [772](https://github.com/grafana/loki/pull/772) Moved into Loki project.
  3091  
  3092  ### Bugfixes
  3093  
  3094  There were many fixes, here are a few of the most important:
  3095  
  3096  * **Promtail**: [650](https://github.com/grafana/loki/pull/650) Build on windows.
  3097  * **Fluent-Plugin**: [667](https://github.com/grafana/loki/pull/667) Rename fluent plugin.
  3098  * **Docker-Plugin**: [813](https://github.com/grafana/loki/pull/813) Fix panic for newer docker version (18.09.7+).
  3099  
  3100  
  3101  # 0.1.0 (2019-06-03)
  3102  
  3103  First (beta) Release!