#
include_recipe "accounts"
-include_recipe "munin"
include_recipe "prometheus"
if node[:nominatim][:api_flavour] == "php"
only_if { node[:nominatim][:state] != "slave" }
end
-postgresql_munin "nominatim" do
- cluster node[:nominatim][:dbcluster]
- database node[:nominatim][:dbname]
-end
-
directory "#{basedir}/tablespaces" do
owner "postgres"
group "postgres"
liblua5.3-dev
libluajit-5.1-dev
libicu-dev
+ nlohmann-json3-dev
lua5.3
python3-pyosmium
python3-psycopg2
python_package "SQLAlchemy" do
python_virtualenv python_directory
- version "2.0.19"
+ version "2.0.32"
end
python_package "PyICU" do
python_virtualenv python_directory
- version "2.10.2"
+ version "2.13.1"
end
python_package "psycopg[binary]" do
python_virtualenv python_directory
- version "3.1.10"
+ version "3.2.1"
end
python_package "psycopg2-binary" do
python_virtualenv python_directory
- version "2.9.7"
+ version "2.9.9"
end
python_package "python-dotenv" do
python_virtualenv python_directory
- version "0.21.0"
+ version "1.0.1"
+ end
+
+ python_package "pygments" do
+ python_virtualenv python_directory
+ version "2.18.0"
end
python_package "PyYAML" do
python_virtualenv python_directory
- version "6.0.1"
+ version "6.0.2"
end
python_package "falcon" do
python_virtualenv python_directory
- version "3.1.1"
+ version "3.1.3"
end
python_package "uvicorn" do
python_virtualenv python_directory
- version "0.23.2"
+ version "0.30.5"
end
python_package "gunicorn" do
python_virtualenv python_directory
- version "21.0.1"
+ version "22.0.0"
+ end
+
+ python_package "jinja2" do
+ python_virtualenv python_directory
+ version "3.1.4"
+ end
+
+ python_package "datrie" do
+ python_virtualenv python_directory
+ version "0.8.2"
+ end
+
+ python_package "psutil" do
+ python_virtualenv python_directory
+ version "6.0.0"
+ end
+
+ python_package "osmium" do
+ python_virtualenv python_directory
+ version "3.7.0"
end
end
action :nothing
user "nominatim"
cwd build_directory
- command "cmake -D WITH_LUAJIT=ON #{source_directory} && make"
+ command "cmake #{source_directory} && make"
notifies :run, "execute[install_nominatim]"
end
:log_file => "#{node[:nominatim][:logdir]}/query.log",
:tokenizer => node[:nominatim][:config][:tokenizer],
:forward_dependencies => node[:nominatim][:config][:forward_dependencies],
- :pool_size => node[:nominatim][:api_pool_size]
+ :pool_size => node[:nominatim][:api_pool_size],
+ :query_timeout => node[:nominatim][:api_query_timeout],
+ :request_timeout => node[:nominatim][:api_request_timeout]
+end
+
+remote_file "#{project_directory}/secondary_importance.sql.gz" do
+ action :create_if_missing
+ source "https://nominatim.org/data/wikimedia-secondary-importance.sql.gz"
+ owner "nominatim"
+ group "nominatim"
+ mode "644"
end
remote_file "#{project_directory}/wikimedia-importance.sql.gz" do
working_directory project_directory
standard_output "append:#{node[:nominatim][:logdir]}/gunicorn.log"
standard_error "inherit"
- exec_start "#{python_directory}/bin/gunicorn -b unix:/run/gunicorn-nominatim.openstreetmap.org.sock -w #{node[:nominatim][:api_workers]} -k uvicorn.workers.UvicornWorker nominatim.server.falcon.server:run_wsgi"
+ exec_start "#{python_directory}/bin/gunicorn --max-requests 200000 -b unix:/run/gunicorn-nominatim.openstreetmap.org.sock -w #{node[:nominatim][:api_workers]} -k uvicorn.workers.UvicornWorker nominatim.server.falcon.server:run_wsgi"
exec_reload "/bin/kill -s HUP $MAINPID"
environment :PYTHONPATH => "/usr/local/lib/nominatim/lib-python/"
kill_mode "mixed"
end
# Monitoring
-
-munin_plugin_conf "nominatim" do
- template "munin.erb"
- variables :db => node[:nominatim][:dbname],
- :querylog => "#{node[:nominatim][:logdir]}/query.log"
-end
-
-munin_plugin "nominatim_importlag" do
- target "#{source_directory}/munin/nominatim_importlag"
-end
-
-munin_plugin "nominatim_query_speed" do
- target "#{source_directory}/munin/nominatim_query_speed_querylog"
-end
-
-munin_plugin "nominatim_requests" do
- target "#{source_directory}/munin/nominatim_requests_querylog"
-end
-
prometheus_exporter "nominatim" do
port 8082
user "www-data"