I want to visualize direction of river's course by an arrow placed next to the river's name label. I have an idea to place the blue arrow as a text in front of my label or at the end of my label, but the problem is with the qgis label engine. Depending on vector rotation label puts along or across the vector direction. Can I check somehow if label is placed along or across the vector direction? I would prefer the solution by Expression or maybe you have any better ideas how to visualize that...
To solve your problem you have two different options.
Solution 1 by default option
QGIS, at least from the 3.10 (not sure about previous versions), offers the opportunity to add this arrow symbol to the label by default using one of the Labels options.
In Layout Manager > Labels in the Formatting page, active the option
Line direction symbol and, here, use the arrow symbols (you can copy them from the System Character Map).
This will suit your request. But, as discussed in the comments, this solution turn off the possibility to activate the useful option Merge connected lines to avoid duplicate labels and seem to be not compatible with the Placement Curved or Horizontal.
Solution 2 by expression (recommended)
You can achieve the same result using an expression that calculates the direction of the line to populate your label.
This is the expression
with_variable('direction', angle_at_vertex ($geometry, if( num_points( $geometry) >1, num_points( $geometry)/2, 1)), case when @direction < 179 then 'label →' when @direction > 180 and @direction < 360 then '← label' end )
This solution is recommended because keep active and selectable the option Merge connected lines to avoid the duplicate labels and works with all the Placement options.
if option in the expression permits to calculate the direction on the middle of a line with several nodes and avoid to misinterpreted a line that has an irregular proceeding.