Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: more confs for prometheus pushing #8

Closed
wants to merge 983 commits into from

Conversation

HJianBo
Copy link
Owner

@HJianBo HJianBo commented Jan 11, 2023

  • feat: add emqx enterprise app connector & bridge
  • feat: hstream bridge & connector
  • fix: hstream db connector , TODO: start apps
  • fix: hstream db connector & bridge, TODO: SUITE
  • fix: ee bridge & connector remove app mod
  • fix: exs deps & bad suites
  • fix: hstreamdb connector conf & api
  • fix: hstreamdb zh docs
  • feat: add ee influxdb connector & bridge
  • fix: add influxdb udp api_v1 api_v2 connector
  • fix: influxdb connector api available
  • fix: influxdb bridge api available
  • fix: influxdb connector bad encode message
  • fix: update influxdb sdk version to 1.1.3. Adapted master deps version
  • fix: override ehttpc & ecpool dep version
  • chore: unifined lib-ee name style
  • chore: module and fun call rename
  • feat(bridge): add mysql sink
  • fix(bridge): remove emqx_ee_connector_mysql
  • chore: use HStreamDB for module name
  • fix: bridge and connector namespace contains DB name
  • fix: refine influxdb connector api type name
  • fix: prevent unexcepted square brackets in influxdb line protocol
  • feat: refine influxdb bridge conf
  • fix(influxdb): parsed boolean type match
  • fix: spellcheck and update checker repo version
  • fix: InfluxDB api v1 not support uint type
  • feat(resource): first commit for batching/async/caching mechanism
  • feat(resource): start emqx_resource_worker in pools
  • fix: remove the extra file replay.erl
  • refactor: create emqx_resource_worker_sup for resource workers
  • fix: update existing testcases for new emqx_resource
  • fix(resource): make option 'queue_enabled' disabled by default
  • fix: increase resource metrics using the resource id
  • fix: update test cases for emqx_connector
  • feat: add test cases for batching query
  • fix(resource): remove resource at the end of each test
  • feat: support aysnc callback to connector modules
  • fix: issues found by dialyzer and elvis
  • fix: test cases for batch query sync
  • fix: add test cases for query async
  • feat: translate map to object in schema.json
  • feat: add inflight window to emqx_resource
  • fix(influxdb): fix illegal wirte_syntax example
  • fix(influxdb): api schema write_syntax using raw type string()
  • fix(bridge): replace prepare_statement by sql_template
  • fix(bridge): add sql_template field format
  • feat(resource): resource batch/async/queue config schema
  • chore: refine md form format
  • feat(influxdb): influxdb connector add on_batch_query/3 callback
  • fix(bridges): support create resources with options
  • fix: syntax error and compile error
  • fix: flatten Points list
  • feat: http connector support async sending
  • fix: fetch resource options after reboot
  • fix: undefined_functions dialyzer warning
  • fix: update bridge config badmap error
  • fix: bump emqx_dashboard to 5.0.4
  • chore: release e5.0.0-beta.1
  • ci: do not push enterprise image to aws ecr
  • fix: bridge creation opts refs
  • test(gw): fix gateway flaky tests
  • feat: add more resource creation opts
  • fix: schema default value using raw type before convert
  • chore: refine i18n label
  • chore: refine async query variable name
  • chore: bump influxdb-client-erl vsn
  • feat(influxdb): add async callback
  • chore: refine influxdb bridge/connector i18n
  • feat: influxdb support async/batch_async query
  • fix: write influxdb line with undefined value
  • fix: unify the health check interval
  • fix: inc 'actions.failed' if bridge query failed
  • refactor(resource): add resource_opts level into config structure
  • fix: revert the changes in connector mysql
  • fix: make resume_interval defaults to health_check_interval
  • feat(bridge): add on_batch_query on emqx_connector_mysql
  • fix(bridge): don't export internal fields
  • fix(influxdb): connector use a fallbacke pool_size for influxdb client
  • fix(bridge): password for bridge/db format as password for dashboard
  • fix(resource): make some resource opts internal
  • fix(resource): keep auto_retry in disconnected state
  • fix(bpapi): make bpapi static_checks happy
  • fix(bridge): make spellcheck happy
  • refactor: new config structure for mqtt bridge
  • fix(bridges): update the test cases for new config structure
  • fix(auth): remove emqx_connector from testcases of authz/authn
  • fix(authz): don't stop emqx_resource app in test cases
  • fix: use gen_statem:cast/3 for async query
  • fix(docs): ee bridge api docs generation
  • feat: influxdb bridge structure fits new style
  • refactor: configs and APIs for mysql bridge
  • fix(influxdb): refine influxdb bridge example
  • chore: release e5.0.0-beta.2
  • fix: exclude 'emqx-enterprise' when publish docker images
  • fix: don't update manifest if not an exact tag
  • fix(mysql_bridge): export the query_mode option to the APIs
  • fix: don't update manifest if not an exact tag
  • fix: incorrect replayq dir for the emqx_resource
  • refactor: rename the error return resource_down -> recoverable_error
  • fix(mysql_bridge): export the query_mode option to the APIs
  • chore: update dashboard for e5.0
  • chore: refactor mqtt connector
  • feat(bridge): support async mode resource options
  • chore: update emqtt to 1.7.0-rc.1
  • refactor: new metrics for resources
  • fix(mqtt-bridge): username and password defaults to undefined
  • fix: return error when receive HTTP code other than 2xx
  • fix: return error on start hstreamdb crash
  • fix: update the counters for data bridges
  • fix: resume the resource worker on health check success
  • fix: rename queue_max_bytes -> max_queue_bytes
  • feat: use the new metrics to bridge APIs
  • fix: start connector-mqtt failed when username/password not provided
  • fix: please the elvis
  • fix: update the swagger for new resource metrics
  • refactor: change '{recoverable_error,Reason}' to '{error,{recoverable_error,Reason}}'
  • chore: ensure version bumps
  • test: fix failed tests
  • chore: update emqtt vsn
  • fix: incorrect message order when batch is enabled
  • feat: add mongodb bridge (e5.0)
  • feat: handle lists of servers in mongo servers config
  • refactor(resource): rename metrics batched,queued -> batching,queuing
  • refactor(resource): remove metrics 'sent.exception'
  • chore: update dashboard for e5.0
  • fix: mark the async msg 'queuing' not 'sent.inflight' on recoverable_error
  • test: refactor to use hocon and schema
  • chore: release e5.0.0-beta.3
  • feat: add edition info to /nodes api
  • chore: change community to opensource
  • chore: fix dialyzer warning.
  • feat: check dependent actions before removing the bridges
  • chore: add emqx_release:edition_longstr()
  • fix: no error log print if insert bool values into mysql
  • chore(mix): guard enterprise-only dependencies
  • refactor: rename some metrics for emqx_resource
  • feat: don't include emqx-entriprise.conf in opensource
  • feat: Add Kafka connector
  • test: add test cases for Kafka SASL auth mechanisms plain and scram
  • fix: kafka bridge schema
  • chore: don't generate enterprise.conf when not emqx-enterprise profile
  • refactor: change some default values of resource_opts
  • fix(mqtt_bridge): handle send_to_remote in idle state
  • feat: add test case for Kerberos Kafka authentication
  • fix(mqtt_bridge): return value of sending messages was discarded
  • chore: refine influxdb bridge description
  • fix(bridge): mysql bridge error case
  • chore: add test cases for MQTT Bridge reconnecting
  • fix: use different instance id in Kafka auth test
  • test: make bridge name unique in tests
  • refactor(resource): save inflight size into the ETS table
  • test: Kafka bridge cases for all combinations of SASL and SSL
  • refactor(resource): fast resume resource worker if inflight msgs are ACKed
  • fix: influxdb server string support scheme prefix
  • fix: hide influxdb udp config
  • chore: update emqtt to 1.7.0-rc.2
  • refactor(resource): resume from queue/inflight-window with async-sending and batching
  • chore: update dashboard vsn
  • ci(kafka): fix shellcheck errors
  • build: fix deps consistency check
  • test: test cases for Kafka bridge REST API
  • test: fix error in script detected by spellcheck script
  • test: fix true not allowed as docker compose env var value
  • chore: delete bad parse_bridge function clause
  • fix(bridges): some issues found in code review
  • test: fix bad binary pattern
  • test: changes to make Kafka container run in GitHub action
  • test: github actions debug printouts
  • fix: fix entrypoint in docker compose for Kafka bridge test
  • chore: bump influxdb-client-erl version
  • chore: bump app vsns
  • chore: release e5.0.0-beta.4
  • feat: add support for counters and gauges to the Kafka Bridge
  • fix(kafka): some fixes for kafka producer
  • feat: update emqx dashboard version -> e1.0.1-beta.5
  • feat: use upstream newly tagged 1.7.0 wolff
  • chore: add copyright disclaimer
  • test: fix tests after counter changes
  • chore: pin telemetry version
  • fix: uninstall telemetry handler on resource stop, use unique id
  • feat: start telemetry app before emqx
  • feat: emit telemetry events for all resource worker metrics
  • fix: account calls when resource is not connected as matched
  • refactor: simplify wolff telemetry handler id
  • feat(resource): reset metrics when stopping a resource
  • fix: typo in http error code
  • feat(mgmt): add alias endpoint for health check
  • build: stop trying to fetch rebar and build deps on each build
  • build: always ensure rebar3
  • ci(actions): update git actions to latest versions
  • docs: re-group api tags for gateway apps
  • docs(fix): remove dynamic example paths from api docs
  • docs(status_api): add remark about feature introduction versions
  • fix(bridge): keep bridge name type as binary don't convert it to atom
  • chore: update changes
  • fix(bridge): Ensure that the node name is known
  • fix(connector): keep connector name type as binary don't convert it to atom
  • fix(API): Ensure that the node name is known
  • fix(coap): Ensure that the retain flag is a boolean value
  • fix: return 404 instead of 400 for unknown gateway
  • ci: build elixir images for ce only
  • build: add quotes around variables in action shell script
  • ci: bump login action version
  • test: remove unused var warning
  • fix(listeners): Constraints the atom convert when parsing the esockd access rules
  • fix(mgmt): Ensure the CLI will not create useless atom
  • ci: fix helm chart upload on releases
  • fix(acl): Check the real topic in delayed messages
  • chore: update changes
  • chore(actions): update version for leftover action
  • chore: update pr template
  • fix(emqx_mgmt_api_configs): use 'node' query paramter if given
  • test: pass down Opts in request_api/X
  • test: add tests for 'configs?node'
  • chore: add changelog
  • test(influxdb): increase influxdb bridge/connector coverage (ee5.0)
  • fix: Revert "feat(banned): clean retained/delayed data when client is banned"
  • feat(delayed): check if the source client is banned when publishing a delayed message
  • chore: update changes
  • style: fix typo in changelog
  • fix(channel): session takenover & discarded maybe call disconnect hook
  • test: different resons for disconnect event
  • fix(emqx_authz_api_sources): return 'code' in response body for 404
  • fix(emqx_authz_api_sources): make schema fit to what we send
  • chore: add changelog
  • style: fix message returned for 404
  • chore: bump emqx_authz app vsn
  • test: ensure all modules start
  • chore: make nl check script happy
  • chore: bump OTP version
  • ci(ct/run.sh): use host uid and gid in erlang container for ct
  • chore: make the ./cache to be writeable
  • chore: fix /.cache and /.erlang.cookie in erlang container
  • chore: manually initialize .erlang.cookie for ct_docker
  • docs: add missing change logs
  • chore: upgrade dashboard version to v1.1.1
  • ci: fix upload artifacts path
  • ci: fix artifacts upload for linux build
  • docs: add v5.0.11 change logs file
  • docs: update v5.0.10 changelog for chore: bump OTP version emqx/emqx#9293
  • ci: fix yaml syntax
  • feat: filter out messages which the source client is banned when delivering the retained message
  • chore: update changes
  • fix(helm): fix existingName does not take effect
  • test: change CT_READABLE default value to true
  • chore: fix the bad change logs introduced in 'emqx' Helm chart ssl.existingName not working emqx/emqx#9307
  • chore: bump retainer version
  • fix(emqx_authn_api): return 404 for status of unknown authenticator
  • test: increase timeout creating listeners
  • style: indent script
  • test(refactor): stop snabbkaffe on every test
  • fix(mgmt_api): Convert only what is needed when parsing subscription information
  • chore: bump version && update changes
  • fix(JWT): make the exp to be optional claim
  • chore: update changes
  • chore(acl): fix acl test
  • feat(banned): kick session when it is banned by clientid
  • chore: bump emqx version && update changes
  • ci: fix version for push-helm-action
  • ci: enable manual trigger on release workflow
  • test(refactor): encode toxiproxy payloads with emqx_json
  • style: fix typo in comment
  • style: remove unused import
  • refactor: only PUT, no POST for '/gateways'
  • chore: sign extra files on macos when packaging ee
  • chore: fix app versions
  • fix: bridge name parser should not leak atom
  • ci: add back the profile matrix for elixir_release build
  • fix: add no_return function spec to make dialyzer happy
  • test: fix flaky banned case
  • chore: make remsh node name away from the atom DOS attack
  • ci: release only the default packages
  • ci: ensure docker-compose up erlang container with root when test Kafka
  • refactor: emqx_statsd hot update
  • chore: update changes
  • fix: can't get default raw config
  • chore: add changelog for fix global_zone api
  • ci: ensure PROFILE for ct runs
  • ci: add DIAGNOSTIC=1 to inspect rebar3 error
  • ci: refactor run_test_cases to prepare ce and ee source zips
  • ci: make ci matrix from find-apps.sh
  • ci: refactor, find-app.sh produced matrix
  • chore: upgrade to replayq 0.3.5
  • ci: fix find-apps.sh default printout
  • ci: exclude enterprise tag for windows builds
  • ci: exclude raspbian all together
  • ci: avoid using 'include' for elixir builds
  • chore: bump version to v5.0.0-beta.5
  • ci: fix windows build
  • ci: build slim packages on macos arm64
  • ci: use user home dir for otp install
  • chore: ensure macos keychain does not exist when signing binaries
  • fix: create trace sometime failed by end_at time has already passed
  • chore: update 5.0.11 changelog
  • chore: update emqx_statsd.app.src descriptions
  • chore: apply suggestions from code review
  • fix(will-msg): fix mountpoint not working for will-msg.
  • chore: update changes
  • fix(typo): typo in code
  • ci: define otp source and install path in one place
  • fix: change the defualt value of max_topic_levels to 128
  • chore: update changes
  • feat: do not drop MQTTv5 properties in rule/bridge
  • feat: add user_properties arg for republish action
  • fix: fix newly found unsafe binary_to_atom
  • chore: update app versions
  • docs: add change log files for v5.0.12
  • test: initialize clients in test setup, teardown after test
  • feat: support publish with properties
  • fix: fix obsolete SSL files aren't deleted after the bridge configuration update
  • chore: update app version && changes
  • feat(emqx_map_lib): add a binary_key_map help function
  • refactor(emqx_connector_ssl): simplify implementation
  • chore: set channel info once
  • fix: fix upside down function clause
  • feat(authn): support quick deny anonymous
  • fix(ctl): fix unsafe list_to_atom
  • chore: update changes
  • feat: support node.global_gc_interval=disabled
  • chore: upgrade to dashboard v1.1.2
  • fix(mgmt): optimize the speed of query tail pages
  • refactor(mgmt): smplify the node_query/cluster_query implementation
  • fix(mgmt): collect total number in node_query/cluster_query
  • chore: return undefined fuzzy searching func
  • chore: update app.src
  • chore: fix diaylzer warnings
  • test: refine tests for lots of List HTTP API
  • chore: improve the no-conditions query
  • chore(bpapi): ignore emqx_mgmt_api:collect_total_from_tail_nodes/3
  • fix(delayed): return correct node name
  • feat(cm): change emqx_channel_info to ordered_set table
  • test(mgmt): cover emqx_mgmt_api:cluster_query
  • chore: change emqx_live_connection tab type to ordered_set
  • chore: update changes
  • refactor(mgmt): convert fuzzy filter func to named func
  • chore: refactor ms2qs function type
  • chore: clarify the case when count returns zero
  • fix(emqx_authz_api_mnesia): return the right matchers
  • chore: update emqx_conf/emqx_machine version
  • chore: update v5.0.12 changelog
  • chore: update i18n en description
  • ci: build macos release packages for apple silicon (arm64)
  • chore: update changes
  • chore: update grafana dashboards
  • chore: add proper units for rates on the dashboard
  • chore: bump to version v5.0.11-rc.1
  • chore: fix chart version
  • chore: bump version to v5.0.11
  • build: add release helper scripts
  • ci: add separate manual workflow to upload helm charts
  • feat: remove $queue in favor of $shared
  • fix: emqx_topic:join/1 instead of filename:join/1
  • chore: update changes
  • ci: delete auto sync from emqx.git to emqx-enterprise.git
  • chore: update changes
  • chore: bump app versions
  • chore: bump app versions
  • fix(exhook): fix obsolete SSL files aren't deleted after the Exhook config update
  • chore: update changes && bump version
  • ci: automatically update emqx/emqx:latest on releases
  • refactor: use PUT on /position to move authenticator
  • docs: fix minor issues in docker readme
  • ci: delete otp_release from log artifact name
  • ci: delete codeball
  • ci: clean before prepare and 'make' the default target
  • chore: add an empty file emqx_license.conf to make ci happy
  • ci: pre-compile test profile
  • ci(scripts/ct/run.sh): fix undefined vars when runing ct for non-docker
  • fix(connector): fix previous incorrectly fixes
  • chore: bump connector version
  • fix(connector): fix ssl clear
  • chore: add description to apps
  • ci: add --remove-orphans option to docker-compose up command
  • feat: add mqtt bridge config upgrade converter
  • fix(limiter): add limiter back to the configs API
  • chore: update changes
  • test: add basic tests for EE mysql bridge
  • test: improve basic tests for EE mysql bridge
  • test: expand EE mysql bridge test with toxiproxy
  • test: more EE mysql bridge tests
  • fix(mgmt_api): add missing error codes in schema
  • test: remove unnecessary async tests in EE mysql bridge
  • chore: pin hocon 0.31.2
  • refactor: make all bridges optional (required = false)
  • test: add test case to cover mqtt bridge config upgrade
  • chore: add codeowners
  • fix: don't save cert/authz zip on disk when emqx start
  • refactor: return 204 instead of 200 for PUT /authenticator/:id
  • test: add copy data dir test case
  • docs: fix schema for /trace/:name/log
  • docs: add swagger error codes for /trace/:name/[log|download]
  • docs: /trace returns list not single trace
  • style: fix changelog
  • chore: add zn translation
  • ci: make test runnable without self-hosted in fork repo
  • fix: return 404 for /telemetry/data in case it's disabled
  • fix: Revert "refactor: return 204 instead of 200 for PUT /authenticator/:id"
  • fix(frame): fix potential parse errors found by fuzzing test
  • refactor(emqx_frame): better error handling
  • refactor: use static function references
  • refactor: move metrics out of /rules(/:id) to /rules/:id/metrics
  • chore: pin dashboard v1.1.3-sync-code
  • test: fix bridge api tests, metrics is now a separate api
  • feat(bridge): add Redis bridge
  • feat: bump ee dashboard to e1.0.1-beta.7
  • test: fix emqx_frame_SUITE
  • build: enable docker img push for forkings
  • chore: ensure default stat on macos when resolving running root dir
  • chore: remove exclamation marks around warngings in bin/emqx
  • chore: colorize warning and error logs
  • test: fix config load for lib-ee tests
  • test: do not load emqx_conf app when it's not found
  • ci: remove undefined matrix from artifact name
  • ci: rename build step for docker-ct
  • test: render config for emqx_conf only for ee bridge tests
  • fix(psk): Add more PSK ciphers support
  • test(psk): add PSK ciphers test case
  • chore: update changes
  • chore: delete stale files
  • docs: update README
  • fix(helm): fix some helm error
  • ci: remove allgood checks
  • fix(auth): fix emqx_authenticator cooperation with other 'client.authenticate' hooks
  • chore(retainer): optimize index writes
  • docs: Add more change notes
  • fix: return 400 if node in query doesn't look like a known node
  • fix: flip order of checks to return 404 before 400
  • fix: upgrade ehttpc from 0.4.0 to 0.4.2 for performance improvement
  • docs: add change logs for ehttpc upgrade
  • fix: return 409 in case of duplicate
  • chore: add changelog
  • style: fix translations
  • fix: ingress only bridge causes egress bridge traffic stop
  • docs: update docker readme
  • chore: update release notes
  • ci: fix logs artefact name
  • fix(emqx_schema): handshake_timeout is common for all listeners
  • docs: automatically update readme for emqx/emqx image on docker hub
  • chore: helm chart support externalTrafficPolicy
  • ci: update short description on docker hub page for emqx/emqx
  • refactor: move /mqtt/sys_topics to generic /configs/sys_topics
  • fix(emqx_gateway): return 204 for lwm2m client posts
  • test: api returns for lwm2m client posts
  • chore: update changes
  • test: rename return_body to return_all in emqx_mgmt api test util
  • chore: update changes
  • fix: set authentication array from ENV failed
  • refactor: fix typo in variable name
  • test(ci): clean config after test
  • ci(fix): ensure directory for i18n output exists
  • test(fix): avoid trying to connect to system_monitor db in tests
  • test(flaky): avoid inter-suite flakiness
  • feat(gcp_pubsub): implement GCP PubSub bridge (ee5.0)
  • docs: improve descriptions
  • test(refactor): add ids to namespace on_exit callbacks
  • docs(gcp_pubsub): describe where to get credentials
  • feat(gcp_pubsub): add local_topic config
  • docs: improve descriptions
  • refactor(test): use a linked janitor for test teardown
  • refactor: rename and move emqx_ee_bridge_gcp_pubsub_resource to emqx_ee_connector_gcp_pubsub
  • docs: update release note for authn env override fix
  • fix(helm): chart using incorrect secret values with custom credentials
  • ci: build amzn2 package
  • chore: switch to python2 to use yum in tests
  • ci: keep building el7 in slim packages
  • docs: update changelog
  • docs: translate change log in changes/v5.0.12-zh.md
  • refactor: use POST not PUT for /users/{name}/change_pwd
  • refactor: change ce | ee to v | prefix for shell prompt
  • refactor(emqx_bridge_resource): rename a variable
  • chore: pin hocon 0.32.0
  • refactor(config): no need to explicitly remove env metadata
  • refactor(emqx_authn): make error messages more readable
  • ci: no need to run ct with static profile matrix
  • chore: fix distro detection for amazon linux 2
  • fix(bin/emqx): typo in bin/emqx usage info
  • docs: update change log, record fix with the right PR
  • chore: bump version to v5.0.12
  • chore: bump app versions
  • ci: no need to set python2 for yum for el8
  • build: if uname -m prints arm64, we use arm64 (instead of just arm)
  • fix: run message.dropped hook, inc messages.dropped metrics
  • test(session): ensure 'message.dropped' hook ran with named reason
  • chore: add missed changes
  • ci: use ref to tag rather than raw branch for emqx-fvt in jmeter suite
  • feat: bump dashboard vsn
  • chore: bump redbug to 2.0.8
  • chore: switch to emqx/rebar3 3.19.0-emqx-1
  • ci: include OTP-25 in some workflows
  • chore(tls): drop OTP-22-related workaround
  • chore: drop few unused macros / includes
  • fix: also pin redbug to 2.0.8 in mix.exs
  • fix(release): pass overlay vars with correct option
  • fix: use proper indentation in Makefile
  • fix: drop no longer supported dialyzer option
  • ci: bump elvis version to 1.1.0-emqx-2
  • fix(ci): spec function with explicit exception
  • ci: update to emqx-plugin-template 5.0.0
  • fix(ct): prevent testcase flapping
  • ci: unset compile time vsn in dev profiles
  • fix: handle status in format_status/1 callback
  • ci: pin emqx/erlang-rocksdb to 1.7.2-emqx-7
  • fix(influxdb): check if fields are empty before sending
  • chore: fail build if apple notarization failed
  • ci: cut down slim build matrix
  • ci: reduce test matrix size
  • ci: avoid coverdata filename collisions
  • feat(rule-engine): zip, gzip, zip_compress funcs in rule-sql
  • test(rule-funcs): test compression funcs
  • refactor: return 204 instead of 200 for PUT /authenticator/:id
  • chore: fix RUNNER_ROOT_DIR detection on MacOS
  • chore: fix logging in bin/emqx on non-tty
  • docs: prepare to deprecate broker.shared_dispatch_ack_enabled
  • fix(shared): handle unsubscribe for sticky strategy
  • docs: update change logs
  • refactor(shared_sub): improve sticky strategy performance
  • fix(shared_sub): insert alive pid table at mnesia table event
  • refactor: delete stale code
  • fix(kafka_producer): cleanup client after failing to start producers
  • chore: cap replayq seg size under total size
  • refactor: default mqtt bridgge buffer pool size down to 4
  • refactor: add default value for eggress remote 'qos' and 'retain'
  • refactor: refine worker pool config and doc
  • chore: Add more PR templates
  • fix: do not start jq port programs when they are not needed
  • fix(limiter): change limiter cache to buffer
  • fix(psk): add new supported ciphers to the conf template
  • ci: use our own setup-beam fork
  • fix(emqx_connector): check for key among prepared statements on query
  • test: add more EE mysql bridge test cases
  • chore: update changes
  • test: refactor EE mysql bridge test case
  • chore: update changes
  • refactor: rename error return in mysql connector
  • ci: make homebrew more conservative
  • ci: issue with linking unixodbc when building OTP on macos arm64
  • chore: use unique name for temp macos keychain
  • docs: update readme
  • docs: update README with Erlang/OTP requirements
  • docs: remove references to README-JP.md
  • refactor: remove dead code
  • chore: pin hocon 0.33.0
  • fix(logs): set password field sensitive for connectors
  • feat(mqtt): add option to customize clientid prefix for egress bridges
  • fix(config): option only_fill_defaults renamed to make_serializable
  • chore: bump app versions
  • fix: format psk user lookup fun back to string
  • feat(upgrade): add forward version check for upgrade script
  • fix: non-empty field should not be undefined
  • fix(banned): ensure the default timeout of banned is large enough
  • chore: prepare v5.0.13-rc.1
  • build(macos): do not automatically lock keychain
  • ci: fix builder for elixir
  • ci: bump to v5.0.13-rc.2
  • ci: fix build matrix
  • ci: build elixir package on OTP 24 for Amazon Linux 2 for now
  • ci: bump to v5.0.13-rc.3
  • ci: send notification to Slack when scheduled bulid failed
  • build: prepare for v5.0.13 release
  • refactor(docs): use var for output filepath
  • test(refactor): no need for monitor
  • test(refactor): decrease test teardown noise
  • chore: upgrade kafka_protocol, wolff, brod
  • feat: log the upgrade script being used for visibility
  • refactor(review): use lists:flatten/1
  • feat: deny upgrades for now
  • fix(ci): bump to jq v0.3.9 with OTP-25 prebuilt binaries
  • ci: reenable OTP-25 package builds targeting amzn2
  • fix(kafka): Memory OLP is only applicable in linux systems
  • test: add a 2 seconds sleep between listener sotp and restart
  • fix: bad best fmt json []
  • ci: dump docker-compose log if failed to run ct
  • chore: bump influxdb client lib version from 1.1.4 to 1.1.5
  • ci: avoid github action ct log artifacts name clash
  • ci: show timestamp from docker compose logs
  • ci: delay Kafka topic creation
  • feat(bom): import rebar_sbom for generating bom files
  • fix(gcp_pubsub): fix potential jwt accumulation and lack of refresh (v5.0)
  • chore: upgrade wolff -> 1.7.4
  • fix(kafka): detect connectivity in on_get_status
  • chore: fix flaky test case in emqx_connector_jwt_worker_SUITE
  • refactor: move version prefix string detection to a static fun
  • refactor: use string type for server and servers
  • test(emqx_modules): do not expect badmatch in test cases!!!
  • fix(statsd schema): a field is not 'required' when it has 'default'
  • refactor(metrics): use absolute gauge values rather than deltas
  • fix(kakfa_producer): prevent multiple producers from multiplying each other's metrics
  • chore: bump app vsns
  • chore: update copyright year 2023
  • chore: update BSL license year
  • chore: issue new Enterprise evaluation license
  • fix(kafka): fix handling of dropped.queue_full event from wolff
  • fix(mysql): fix the problem of data loss and bad match when mysql is disconnected
  • chore: bump version && update changes
  • test(mysql): fix test case error
  • refactor(emqx_resource): ingress bridge counter
  • chore(readme): remove legacy Travis mentions
  • fix(cluster_rpc): Detect stopped replicant nodes
  • test: fix emqx_conf test cases
  • chore: update codeowners
  • test(gcp_pubsub): fix flaky test
  • chore(docker): add option to stop local testing containers (v5.0)
  • docs(mongodb_connector): fix duration field descriptions
  • fix(bridges): obfuscate the password in bridges API responses
  • test: add the redacted test case for bridges api
  • chore: bump version && update changes
  • docs: improve descriptions
  • fix(mongodb): add type and name fields to the get/post API docs
  • chore: use @emqx/emqx-review-board team in codeowners
  • chore(rule_engine): reset metrics when disabling a rule
  • test: attempt to fix flaky test
  • fix(retainer): change mnesia table storage types during update
  • test(retainer): assert that retained messages are not lost when changing storage type
  • fix(router_helper): Reduce log verbosity of expected events
  • ci: Change how the changelog is created
  • ci: Add generate_changlelog script to scripts/rel/cut.sh
  • feat(emqx_metrics): Sliding window samples
  • test: attempt to reduce flakiness
  • fix(kafka_producer): fix message loss when kafka connection is down
  • fix(kafka_producer): avoid multiplication of metrics when bridge is recreated
  • feat(buffer_worker): use offload mode for replayq
  • feat(buffer_worker): refactor buffer/resource workers to always use queue
  • docs: improve descriptions
  • docs: improve descriptions
  • refactor: remove unused function
  • test(flaky): fix flaky jwt worker test
  • fix(authz_http): handle ignore results (request failures)
  • fix(Bridge REST API): no feedback when deleting bridge
  • feat: upgrade MongoDB library to support MongoDB 5.1+
  • test: do not use tc_user_skip for test cases
  • ci: should not skip tests in github actions
  • test: wait for redis
  • chore: delete unused var in ct/run.sh
  • fix: function_clause when sending messages to bridges
  • fix(clients): fix expiry_interval unit error
  • chore: update changes
  • chore: updage mgmt app vsn
  • chore: Update changes/v5.0.14-en.md
  • chore: upgrade changes format
  • chore: update change logs
  • feat(bridges): integrate PostgreSQL into bridges
  • test(bridges): add test case for the PostgreSQL backend
  • chore: add i18n file for ldap connector
  • chore: bump to emqx/ehttpc 0.4.3
  • chore: bump to emqx/eredis_cluster 0.7.5
  • fix: missing default value for qos field of API /clients/:clientid/subscribe
  • chore: update default license (100 conns)
  • chore: update change logs for fix: missing default value for qos field of API /clients/:clientid/subscribe emqx/emqx#9703
  • refactor: remove license from configs API
  • fix(mgmt_api): remove possibility to set clientid in /publish API
  • chore: update changes
  • chore: update the changelog
  • docs: add Chinese version of changelog text for EMQX-8648
  • fix: set the topic field of API /clients/:clientid/subscribe as requried
  • docs: add Chinese translation for change-log entry for EMQX-8329
  • build: delete rebar.lock before making rebar release
  • refactor: use union member type selector for authz sources
  • test: rename a test option name to avoid clashing with prod config name
  • refactor: mongo_type and redis_type are not mandatory
  • ci: wait for redis in emqx_ee_bridge_redis_SUITE
  • feat(bridges): add timescale && matrix bridges
  • test(bridges): add timescale && matrix test cases
  • fix: remove the default value of webhook body field
  • chore: add the change logs for fix: remove the default value of webhook body field emqx/emqx#9705
  • fix: bulk subscribe topics failed in the client.connected hook
  • chore: update the change logs for fix: bulk subscribe topics failed in the client.connected hook emqx/emqx#9712
  • chore: limit the maximum number of api keys to 100
  • chore: support api_key.bootstrap_file config
  • chore: add more test for api_key
  • chore: add changelog for api_key.bootstrap_file
  • chore: apply suggestions from code review
  • fix: bad auto_subscribe api schema
  • chore: add 9714's changelog
  • chore: update auto_subscribe app version
  • fix(mgmt_api): deprecate clientid field instead of removing it
  • fix: upgrade bridge config converter
  • docs: add changelog
  • test: QOS ct failed
  • chore: bump dashboard to v1.1.5
  • chore: bump to 5.0.14
  • fix: bump hocon to 0.35.0(don't log overriding structs)
  • fix(emqx_resource_manager): do not start when disabled
  • feat(prom): support headers for pushing
  • feat(prom): support configuring job_name for pushing mode

Fixes

PR Checklist

Please convert it to a draft if any of the following conditions are not met. Reviewers may skip over until all the items are checked:

  • Added tests for the changes
  • Changed lines covered in coverage report
  • Change log has been added to changes/<version>/(feat|fix)-<PR-id>.en.md and .zh.md files
  • For internal contributor: there is a jira ticket to track this change
  • If there should be document changes, a PR to emqx-docs.git is sent, or a jira ticket is created to follow up
  • Schema changes are backward compatible

id and others added 30 commits December 19, 2022 13:07
…ion-on-macos

chore: fix RUNNER_ROOT_DIR detection on MacOS
…ion-id-should-return-204

refactor: return `204` instead of `200` for `PUT /authenticator/:id`
prior to this change, the message is dispatched to a shared subscriber
even after unsubscribed
* avoid calling ets:select twice for sticky strategy
* when the calling process is terminating, no loop-back dispatch
'hash' strategy has been removed from config schema
hence no need to keep the compatibility code
https://emqx.atlassian.net/browse/EMQX-8547

If a Kafka Producer bridge is given bad configuration (e.g.: bad authn
credentials), the Wolff client process is started successfully, as it
does not attempt to connect, but when the producer process is
attempted to be started, it fails (only then the client tries to
connect to Kafka).  At this point, an error was thrown, but the
supervised client process remained running.

If the configuration was later fixed and the bridge updated, which
prompted its removal and recreation, the Wolff client would report to
be "already started", so it would never pick up the new (fixed)
configuration, and the producers would perpetually fail to start until
the node would be restarted.

We simply ensure the client is stopped before throwing the error,
unrolling the start-up procedure.
otherwise when updating from dashboard, there is no way to set
'false' for 'retain' because it's a checkbox,
it's either 'true' or 'undefined'
fix(influxdb): check if fields are empty before sending
worker pool is a buffer pool
the description hinted connection pool which is wrong.
The jq function in the rule engine uses the jq NIF implementation by
default so there is often no need to start any jq port programs. Before
this commit jq port programs were started anyway. This is fixed by not
starting the jq application (the jq application is started automatically
when the jq port implementation is activated).
…t_port_programs_when_they_are_not_needed

fix: do not start jq port programs when they are not needed
…n-tty

chore: fix logging in bin/emqx on non-tty
fix(limiter): change limiter `cache` to `buffer`
An infinite loop was triggered in the mysql connector when a query
used a prepared statement key that was not among the defined prepared
statements on start. We now check that the key is defined among the
prepared statements before recursing. It seems that this bug was never
triggered in any production code flow and simply found while writing
tests.

An error return spell fix is also included as well as a FIXME comment
regarding running mysql:prepare and not distinguishing between
transient failures and syntax errors. Syntax errors should not be
retried.
ieQu1 and others added 28 commits January 10, 2023 11:08
feat(emqx_metrics): Sliding window samples
…lient.connected-hook

fix: bulk subscribe topics failed in the client.connected hook
…f-webhook-body

fix: remove the default value of webhook body field
chore(readme): remove legacy Travis mentions
Co-authored-by: ieQu1 <99872536+ieQu1@users.noreply.github.com>
…-coverter

fix: upgrade bridge config converter
…quest-body

fix(mgmt_api): remove possibility to set clientid in /publish API
feat: introduce API keys bootstrap_file config
chore: bump up applications to release v5.0.14
…after-recreate-if-disabled

fix(emqx_resource_manager): do not start when disabled
@HJianBo HJianBo closed this Jan 11, 2023
HJianBo pushed a commit that referenced this pull request Feb 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet